web-dev-qa-db-fra.com

Comment supprimer les packages installés avec easy_install de Python?

Le easy_install de Python rend l'installation de nouveaux paquets extrêmement pratique. Toutefois, pour autant que je sache, il n'implémente pas les autres fonctionnalités communes d'un gestionnaire de dépendances, à savoir la liste et la suppression des packages installés.

Quel est le meilleur moyen de savoir ce qui est installé et quel est le moyen préféré pour supprimer les packages installés? Des fichiers doivent-ils être mis à jour si je supprime les packages manuellement (par exemple, par rm /usr/local/lib/python2.6/dist-packages/my_installed_pkg.Egg ou similaire)?

683
ire_and_curses

pip , une alternative à setuptools/easy_install, fournit une commande "uninstall".

Installez pip conformément aux instructions d'installation :

$ wget https://bootstrap.pypa.io/get-pip.py
$ python get-pip.py

Ensuite, vous pouvez utiliser pip uninstall pour supprimer les packages installés avec easy_install.

611
lunaryorn

Pour désinstaller un .Egg, vous devez rm -rf l'œuf (il peut s'agir d'un répertoire) et supprimer la ligne correspondante de site-packages/easy-install.pth.

186
joeforker

D'abord, vous devez exécuter cette commande:

$ easy_install -m [PACKAGE]

Il supprime toutes les dépendances du paquet.

Ensuite, supprimez le fichier Egg de ce paquet:

$ Sudo rm -rf /usr/local/lib/python2.X/site-packages/[PACKAGE].Egg
157
PythonDev

Toutes les informations sont dans les autres réponses, mais aucune ne résume les deux vos demandes ou semble compliquer inutilement les choses:

  • Pour vos besoins de déménagement, utilisez:

    pip uninstall <package>
    

    (installer avec easy_install pip)

  • Pour vos besoins en 'liste des paquets installés' utilisez soit:

    pip freeze
    

    Ou:

    yolk -l
    

    qui peut produire plus de détails sur les paquets.

    (Installation via easy_install yolk ou pip install yolk)

55
Rabarberski

Il existe plusieurs sources sur le réseau qui suggèrent un piratage en réinstallant le paquet avec l'option -m puis en supprimant simplement le fichier .Egg dans lib/et les fichiers binaires dans bin /. Vous pouvez également trouver une discussion sur ce problème setuptools dans le gestionnaire de bogues python en tant que setuptools numéro 21 .

Edit: Ajout du lien vers le python bugtracker.

28
c089

Si le problème vous gêne assez, vous pouvez envisager de virtualenv . Il vous permet de créer un environnement qui encapsule les bibliothèques python. Vous installez des packages à cet endroit plutôt que dans le répertoire global site-packages. Tous les scripts que vous exécutez dans cet environnement ont accès à ces packages (et éventuellement à vos globaux également). J'utilise beaucoup cela lors de l'évaluation de paquets que je ne suis pas sûr de vouloir/dois installer globalement. Si vous décidez que vous n'avez pas besoin du package, il est assez facile de simplement supprimer cet environnement virtuel. C'est assez facile à utiliser. Faire un nouvel env:

$>virtualenv /path/to/your/new/ENV

virtual_envt installe setuptools pour vous dans le nouvel environnement, afin que vous puissiez faire:

$>ENV/bin/easy_install

Vous pouvez même créer vos propres scripts boostrap qui configurent votre nouvel environnement. Donc, avec une commande, vous pouvez créer un nouvel env virtuel avec, disons, python 2.6, psycopg2 et Django installés par défaut (vous pouvez installer une version de envpython si vous le souhaitez).

25
mazelife

Instructions officielles (?): http://peak.telecommunity.com/DevCenter/EasyInstall#uninstalling-packages

Si vous avez remplacé un package par une autre version, vous pouvez simplement supprimer les packages dont vous n'avez pas besoin en supprimant le fichier ou le répertoire PackageName-versioninfo.Egg (situé dans le répertoire d'installation).

Si vous souhaitez supprimer la version actuellement installée d'un package (ou toutes les versions d'un package), vous devez d'abord exécuter:

easy_install -mxN PackageName

Cela garantira que Python ne continue pas à rechercher un paquet que vous prévoyez de supprimer. Cela fait, vous pouvez supprimer en toute sécurité les fichiers ou répertoires .Egg, ainsi que les scripts que vous souhaitez supprimer.

18
Mark Rajcok

essayer

$ easy_install -m [PACKAGE]

ensuite

$ rm -rf .../python2.X/site-packages/[PACKAGE].Egg
15
Jim Geovedi

Pour répertorier les packages Python installés, vous pouvez utiliser yolk -l. Vous devrez cependant utiliser easy_install yolk d'abord.

7
Enis Afgan

Vous êtes tombé sur cette question tout en essayant de désinstaller les nombreux packages aléatoires Python installés au fil du temps.

En utilisant les informations de ce fil, voici ce que j’ai trouvé:

cat package_list | xargs -n1 Sudo pip uninstall -y

Le package_list est nettoyé (awk) d'un pip freeze dans un virtualenv.

Pour supprimer presque tous les packages Python:

yolk -l | cut -f 1 -d " " | grep -v "setuptools|pip|ETC.." | xargs -n1 pip uninstall -y
6
m0hit

Pour moi, supprimer uniquement ce fichier: easy-install.pth a fonctionné, restez pip install Django == 1.3.7

3
Snehal Parmar

J'ai rencontré le même problème sur mon MacOS X Leopard 10.6.blah.

La solution est de vous assurer que vous appelez le MacPorts Python:

Sudo port install python26
Sudo port install python_select
Sudo python_select python26
Sudo port install py26-mysql

J'espère que cela t'aides.

3
Cmag

Cela a fonctionné pour moi. Cela ressemble aux réponses précédentes mais le chemin d'accès aux paquets est différent.

  1. Sudo easy_install -m
  2. Sudo rm -rf /Library/Python/2.7/site-packages/.Egg

Plaform: MacOS High Sierra version 10.13.3

1
Red Rooster