web-dev-qa-db-fra.com

Comment désinstaller des paquetages modifiables avec pip (installés avec -e)

J'ai installé des paquets avec -e

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

Je vois avec gel je vois

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

lorsque j'essaie de désinstaller les paquets, des erreurs se produisent:

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

> pip uninstall horus
Cannot uninstall requirement horus, not installed

Comment désinstaller un tel paquet?

65
Michael_Scharf

Au {virtualenv}/lib/python2.7/site-packages/ (si vous n’utilisez pas virtualenv, alors {system_dir}/lib/python2.7/dist-packages/)

  • supprimer le fichier Egg (par exemple, distribute-0.6.34-py2.7.Egg) s'il y en a
  • dans le fichier easy-install.pth, supprimez la ligne correspondante (il doit s'agir d'un chemin d'accès au répertoire source ou d'un fichier Egg).
60
glarrain

Installez un paquet dev utilisez cmd: 

pip install --editable .

Désinstaller:

rm -r $(find . -name '*.Egg-info')
4
Legolas Bloom

Il se trouve que mon installation était en quelque sorte corrompue.

Je pourrais trouver l'entrée dans:

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

Pour résoudre le problème, j'ai supprimé la ligne du fichier .pth à la main!

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

Une façon plus simple de faire la même chose avec la nouvelle version de setup_tools consiste à exécuter les opérations suivantes:

python setup.py develop -u

Ce qui fait fondamentalement la même chose que ce que @glarrain décrit dans sa réponse.

2
Ahmed Shariff

Il s’agit d’un bogue sous debian/ubuntu linux utilisant le pip installé sur le système d’exploitation (version 8.1.1 pour moi), ce que vous invoquerez avec Sudo pip même si vous avez mis à niveau pip (par exemple, get-pip.py). Voir https://github.com/pypa/pip/issues/4438

Pour une discussion sur la façon de nettoyer, voir https://askubuntu.com/questions/173323/how-do-i-detect-and-remove-python-packages-installed-via-pip , si les solutions il existe des variétés "tout retirer".

... pip les paquets [allez] à /usr/local/lib/python2.7/dist-packages, et les paquets apt à /usr/lib/python2.7/dist-packages

... quelques paquets ont également été installés dans ~/.local/lib.

Pour mon système, tout ce que j'avais à supprimer était /usr/local/lib/python2.7/dist-packages/{package_name}.Egg-link

2
matt wilkie

Au cas où cela aiderait quelqu'un d’autre: Je ne suis pas sûr qu’il s’agisse du même problème, mais j’ai rencontré un problème similaire, où j’avais installé un paquet localement pour le développement avec: 

$ pip install -e .

mais quand j'ai couru 

$ pip uninstall -e .

J'ai eu 

Usage:   
  pip uninstall [options] <package> ...
  pip uninstall [options] -r <requirements file> ...

no such option: -e

et quand je lance pip freeze je reçois

package1=1.0.0
package2=1.0.0
...
package12=1.0.0
-e [email protected]/me/my-repo.git@hash
package13=1.0.0
...

J'ai donc transféré ceci dans un requirements.txt, enlevé tout sauf la ligne -e puis exécuté: 

$ pip uninstall -r requirements.txt

qui a fonctionné pour moi

0
NickleDave