Come faccio a rilevare e rimuovere i pacchetti Python installati tramite pip?

58

Ho accidentalmente installato pacchetti Python sul mio sistema usando pip invece di apt-get . L'ho fatto in due modi:

  • utilizzando una versione precedente di virtualenv, ho dimenticato di aggiungere --no-site-packages durante la creazione di virtualenv - dopodiché ho chiamato pip install , i pacchetti Python installati sul sistema invece che virtualenv
  • in una installazione corretta virtualenv, ho digitato sudo pip install somepackage - il sudo installato sul sistema piuttosto che il virtualenv

Mi è capitato di notare questo perché ho digitato pip freeze all'esterno di un virtualenv e ho individuato alcuni pacchetti Python elencati che non dovrebbero essere lì. Quindi ora la mia domanda è:

  • come faccio a identificare tutti i pacchetti Python che sono stati erroneamente installati sul sistema (ovvero pacchetti Python che appaiono nell'elenco pip freeze , ma non sono stati installati con apt-get )?
  • come li rimuovo?
posta d3vid 08.08.2012 - 10:48

5 risposte

51

Ubuntu Oneiric (e mi aspetto anche le versioni più recenti) installa pacchetti pip in /usr/local/lib/python2.7/dist-packages e apt pacchetti in /usr/lib/python2.7/dist-packages . Quindi controlla la precedente directory e sudo pip uninstall ogni pacchetto che trovi lì.

    
risposta data Capi Etheriel 22.02.2013 - 13:48
9

Pip attualmente ignora i comandi di disinstallazione che tentano di disinstallare qualcosa di proprietà del sistema operativo. Non ha errori, come fa con un pacchetto mancante. Quindi, ora puoi disinstallare con il seguente processo:

pip freeze > dump.txt

Modifica il file scaricato per rimuovere qualsiasi -e righe "installabile modificabile", tutto dopo il segno == ( %s;==.*;;g in vim), scambia le nuove linee per gli spazi ( %s;\n; ;g in vim). Quindi puoi disinstallare tutti i pacchetti non di proprietà con

cat dump.txt | xargs sudo pip uninstall -y

Ho dovuto eseguire questa procedura due volte, perché alcuni pacchetti sono stati installati anche in ~/.local/lib .

    
risposta data Henry Schreiner 26.10.2015 - 15:54
6

AFAIK sudo pip install verrà installato su /usr/local/lib/pythonVERSION/dist-packages . È necessario eseguire sudo pip uninstall per disinstallare i pacchetti a livello di sistema. Sembra che pip freeze cerchi i metadati del pacchetto e elencherà qualsiasi cosa installata, sia da pip che apt-get al di fuori di virtualenvs. Esiste l'opzione -l all'interno dell'ambiente virtuale per elencare i pacchetti applicabili solo a quell'ambiente virtuale ma sembra essere il caso predefinito anche all'interno dell'ambiente virtuale. Penso che tu possa solo cancellare i pacchetti correlati su /usr/local/lib/pythonVERSION/dist-packages , ma non è un metodo molto conveniente, immagino.

    
risposta data sagarchalise 08.08.2012 - 13:01
5

Per rimuovere un pacchetto installato tramite pip, basta premere Ctrl + Alt + T sulla tastiera per aprire Terminal. Quando si apre, esegui il comando seguente.

pip uninstall < package-name >

Per cercare pacchetti

pip search <package you want to search for>

Per determinare quali pacchetti Python sono stati installati da pip, dal comando freeze , che ti darà un elenco dei pacchetti installati e delle loro versioni. Suggerirei di rimuovere tutte le istanze e di reinstallarle utilizzando il comando sudo apt-get

sudo apt-get install python3
    
risposta data Mitch 08.08.2012 - 11:13
-1

Questo ha qualcosa a che fare con Homebrew. Non ho avuto problemi con pyodbc sul mio Mac Air fino a quando non ho installato Homebrew e l'ho usato per alcune cose. Ho trovato questo thread su github che termina in una soluzione che ha funzionato per me.

"Se hai un Homebrew, installa semplicemente le intestazioni ODBC:

$ brew install unixodbc

ed esegui di nuovo "pip install pyodbc".

Questo 100% ha risolto il problema per me e ci ho messo solo un momento. Dagli Un colpo.

    
risposta data Pogo 04.07.2017 - 18:15

Leggi altre domande sui tag