Come disinstallare i pacchetti modificabili con pip (installato con -e)


107

Ho installato alcuni pacchetti con -e

> pip install -e git+https://github.com/eventray/horus.git@2ce62c802ef5237be1c6b1a91dbf115ec284a619#egg=horus-dev

Io con pip freeze vedo

> pip freeze
...
-e git+https://github.com/eventray/horus.git@2ce62c802ef5237be1c6b1a91dbf115ec284a619#egg=horus-dev
...

quando provo a disinstallare i pacchetti ottengo errori:

> pip uninstall horus-dev
Cannot uninstall requirement horus-dev, not installed

> pip uninstall horus
Cannot uninstall requirement horus, not installed

Come si disinstalla un tale pacchetto?


pip uninstall <package> disinstalla i pacchetti installati in modalità modificabile nelle versioni recenti di pip (il mio è 19.1.1). Assicurati di utilizzare il nome del pacchetto in setup.py, non l'alias che specifichi per chiamare quel pacchetto in entry_points
picmate 涅

per le persone che usano conda, per disinstallare in modalità dev in conda fare:conda develop -u .
Charlie Parker

Hai capito perché pip uninstall yourpackagenon ha funzionato? Ti piace cosa significano i tuoi errori? Sembra strano output del comando ...
Charlie Parker

Hai provato pip uninstall -e .o python setup.py develop -u?
Charlie Parker

2
Per me ha pip uninstall libraryfunzionato bene. Se vai alla risposta fornita dall'OP, sembra che sia qualcosa di strano con la sua libreria che è stata danneggiata. Si spera che questo faccia risparmiare tempo alle persone la prossima volta che vengono qui. Tuttavia, ci sono molte diverse opzioni che potrebbero funzionare.
Charlie Parker

Risposte:


90

A {virtualenv}/lib/python2.7/site-packages/(se non si utilizza virtualenv, quindi {system_dir}/lib/python2.7/dist-packages/)

  • rimuovere il file uovo (ad esempio distribute-0.6.34-py2.7.egg) se presente
  • dal file easy-install.pth, rimuovi la riga corrispondente (dovrebbe essere un percorso alla directory di origine o di un file uovo).

43
Un po 'di sorpresa non esiste un modo di disinstallazione corrispondente per questo.
Drake Guan

4
@Drake sì, piuttosto fastidioso in realtà
glarrain

4
Con l'attuale versione pip la disinstallazione funziona bene anche per i pacchetti installati con l' -eopzione.
Famousgarkin

9
per me che uso 8.1.2, pip uninstall package_namefunziona, ma pip uninstall .non funziona
confuso

5
C'è un problema aperto contro pip qui per la possibilità di rimuovere i pacchetti installati modificabili.
Chris Hunt

22

Un modo più semplice per fare lo stesso con la nuova versione di setup_tools è eseguire quanto segue:

python setup.py develop -u

Che fondamentalmente fa lo stesso di ciò che @glarrain descrive nella sua risposta.


2
dovrebbe esserci un output per quel comando? Capisco che dice running developma ho ancora il .egg-infofile ... è necessario rimuoverlo?
Pinocchio

Qual è la "nuova versione di setup_tools" che fa funzionare questa risposta? Puoi confermarlo per favore?
Charlie Parker

La tua risposta garantisce che non è necessario rimuovere manualmente i diluenti?
Charlie Parker

Non produce output. Secondo la mia comprensione, dovrebbe rimuoverlo: "--uninstall, -u Un-deploy il progetto corrente. Puoi usare l'opzione --install-dir o -d per designare l'area di staging. Il file .egg-link creato sarà essere rimosso, se presente e sta ancora puntando alla directory del progetto. " dalla documentazione di setuptools . Dopo aver eseguito questo, carica ancora il contenuto dalla directory di sviluppo?
Ahmed Shariff

@CharlieParker Non sono sicuro in quale versione sia stata introdotta. Non ho mai dovuto rimuovere manualmente questi file.
Ahmed Shariff

10

Installa un pacchetto dev usa cmd:

pip install --editable .

Disinstallare:

rm -r $(find . -name '*.egg-info')

Ora puoi usare:

pip uninstall package_name 

o python setup.py develop --uninstallopython setup.py develop -u


4
Puoi specificare da dove stai eseguendo il secondo comando?
ethanabrooks

1
@ethanabrooks .è la directory corrente, utilizzi il percorso assoluto completo del pacchetto.
Legolas Bloom

1
Incompleta. E tutti i pacchetti Python? ( site-packagesdir)
Jorge Orpinel

Questo non annulla completamente l'installazione. Elimina elementi dalla cartella da cui è stato installato il pacchetto, ma non elimina il collegamento simbolico nella dist-packagesdirectory (dove Python cerca il pacchetto installato). Più pulito da usare python setup.py develop -u.
Mark Amery

@MarkAmery Grazie, pip uninstall package_namelavora ora.
Legolas Bloom

6

Questo è un bug su Debian / Ubuntu Linux che utilizza pip installato dal sistema operativo (v8.1.1 per me), che è ciò con sudo pipcui invocerai anche se hai aggiornato pip (es. Get-pip.py). Vedi https://github.com/pypa/pip/issues/4438

Per una discussione su come ripulire vedere /ubuntu/173323/how-do-i-detect-and-remove-python-packages-installed-via-pip , sebbene le soluzioni ci siano del varietà "rimuovi tutto".

... pip packages [vai] a /usr/local/lib/python2.7/dist-packages, e apt packages a/usr/lib/python2.7/dist-packages

... anche alcuni pacchetti sono stati installati ~/.local/lib.

Per il mio sistema tutto quello che dovevo rimuovere era /usr/local/lib/python2.7/dist-packages/{package_name}.egg-link


Per me ha pip uninstall libraryfunzionato bene. Se vai alla risposta fornita dall'OP, sembra che sia qualcosa di strano con la sua libreria che è stata danneggiata. Spero che questo faccia risparmiare tempo alle persone la prossima volta che verranno qui. Tuttavia, ci sono molte diverse opzioni che potrebbero funzionare
Charlie Parker

5

Si scopre che la mia installazione era in qualche modo danneggiata.

Potrei trovare la voce in:

/usr/local/lib/python2.7/site-packages/easy-install.pth

Per risolvere il problema ho rimosso a mano la riga nel file .pth!

import sys; sys.__plen = len(sys.path)
...
/absolute-path-to/horus  # <- I removed this line
...

1
Cosa significa che la tua installazione è stata danneggiata?
Charlie Parker

-1

Disinstalla semplicemente il pacchetto che hai installato in modalità "modificabile":

pip uninstall yourpackage

9
OP ha provato e lo dice nella sua domanda. Questo non funziona necessariamente con i pacchetti installati come "modificabili"
dusktreader

2
@dusktreader: Non sono sicuro di cosa stia succedendo con il pip uninstallcomando di OP (forse una versione obsoleta di pip?), Ma ho verificato che in circostanze normali fa esattamente ciò che è stato suggerito di fare manualmente nella risposta accettata da @glarrain. Se per te non funziona, descrivi in ​​dettaglio cosa stai facendo qui in modo che possiamo approfondire il problema.
Apteryx

@Apteryx aspetta stai dicendo che funziona anche per la modalità modificabile?
Charlie Parker

Questa risposta ha funzionato per me. Penso che non abbia funzionato per l'OP perché se controlli la sua risposta aveva qualche strana installazione danneggiata (o il suo computer era in uno stato strano). pip uninstall pkgfunziona afaik.
Charlie Parker
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.