python setup.py désinstaller

J'ai installé un paquet python avec python setup.py install.

Comment le désinstaller?

653
demandé sur Kara 2009-10-11 13:06:56

13 réponses

Vous devez supprimer tous les fichiers manuellement, et aussi annuler tout autre élément que l'installation a fait manuellement.

Si vous ne connaissez pas la liste de tous les fichiers, vous pouvez la réinstaller avec l'option --record, et jeter un oeil à la liste que cela produit.

Pour enregistrer une liste de fichiers installés, vous pouvez utiliser:

python setup.py install --record files.txt

Une fois que vous voulez désinstaller, vous pouvez utiliser xargs pour faire la suppression:

cat files.txt | xargs rm -rf

Ou si vous utilisez Windows, utilisez Powershell:

Get-Content files.txt | ForEach-Object {Remove-Item $_ -Recurse -Force}

Puis supprimez également le contenant le répertoire, par exemple /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/my_module-0.1.egg/ sur macOS. Il n'a pas de fichiers, mais Python importera toujours un module vide:

>>> import my_module
>>> my_module.__file__
None

Une fois supprimé, Python affiche:

>>> import my_module
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'my_module'
846
répondu Martin v. Löwis 2018-07-27 13:11:48

Pour moi, ce qui suit fonctionne principalement:

Avoir PIP installé, par exemple:

$ easy_install pip

Vérifiez, comment votre paquet installé est-il nommé du point de vue pip:

$ pip freeze

Liste les noms de tous les paquets que vous avez installés (et qui ont été détectés par pip). Le nom peut être long, puis utilisez simplement le nom du paquet affiché au et après #egg=. Vous pouvez également dans la plupart des cas ignorer la partie version (tout ce qui suit == ou -).

Alors désinstaller le paquet:

$ pip uninstall package.name.you.have.found

Si elle demande une confirmation sur la suppression du paquet, alors vous êtes un gars chanceux et il sera supprimé.

Pip doit détecter tous les paquets qui ont été installés par pip. Il détecte également la plupart des paquets installés via easy_install ou setup.py, mais cela peut dans de rares cas échouer.

Voici un échantillon réel de mon test local avec le paquet nommé ttr.rdstmc sur MS Windows.

$ pip freeze |grep ttr
ttr.aws.s3==0.1.1dev
ttr.aws.utils.s3==0.3.0
ttr.utcutils==0.1.1dev

$ python setup.py develop
.....
.....
Finished processing dependencies for ttr.rdstmc==0.0.1dev

$ pip freeze |grep ttr
ttr.aws.s3==0.1.1dev
ttr.aws.utils.s3==0.3.0
-e hg+https://vlcinsky@bitbucket.org/vlcinsky/ttr.rdstmc@d61a9922920c508862602f7f39e496f7b99315f0#egg=ttr.rdstmc-dev
ttr.utcutils==0.1.1dev

$ pip uninstall ttr.rdstmc
Uninstalling ttr.rdstmc:
  c:\python27\lib\site-packages\ttr.rdstmc.egg-link
Proceed (y/n)? y
  Successfully uninstalled ttr.rdstmc

$ pip freeze |grep ttr
ttr.aws.s3==0.1.1dev
ttr.aws.utils.s3==0.3.0
ttr.utcutils==0.1.1dev

Modifier 2015-05-20

Tout ce qui est écrit ci-dessus s'applique toujours, de toute façon, il y a de petites modifications disponibles maintenant.

Installer pip dans Python 2.7.9 et Python 3.4

Les versions récentes de python sont livrées avec un paquet ensurepip permettant d'installer pip même hors ligne:

$ python-m ensurepip --upgrade

Sur certains systèmes (comme Debian Jessie), ce n'est pas disponible (pour éviter de casser l'installation du système Python).

En utilisant grep ou find

Exemples ci-dessus supposent, vous avez grep installé. J'avais (à L'époque, J'avais MS Windows sur ma machine) installé un ensemble d'utilitaires linux (y compris. grep). Vous pouvez également utiliser MS Windows natif find ou simplement ignorer ce filtrage et trouver le nom dans une liste un peu plus longue de paquets Python détectés.

199
répondu Jan Vlcinsky 2015-05-20 19:13:14

La réponse # 1 a des problèmes:

  • ne fonctionne pas sur mac.
  • Si un fichier est installé qui inclut des espaces ou caractères, la commande xargs échouera et supprimera fichiers / répertoires correspondant aux mots individuels.
  • le -r dans rm -rf est inutile, et au pire, pourrait supprimer des choses que vous ne voulez pas.

Au lieu de cela, pour unix-like:

sudo python setup.py install --record files.txt
# inspect files.txt to make sure it looks ok. Then:
tr '\n' '\0' < files.txt | xargs -0 sudo rm -f --

Et pour windows:

python setup.py bdist_wininst
dist/foo-1.0.win32.exe

Il y a aussi des problèmes insolubles avec la désinstallation setup.py Installez ce qui ne vous dérangera pas dans un cas typique. Pour une réponse plus complète, voir cette page wiki:

Https://ofswiki.org/wiki/Uninstalling_setup.py_install

66
répondu Ian Kelling 2017-02-15 12:33:28

Enregistrez D'abord les fichiers que vous avez installés. Vous pouvez répéter cette commande, même si vous avez déjà exécuté setup.py install:

python setup.py install --record files.txt

Lorsque vous souhaitez désinstaller, vous pouvez simplement:

sudo rm $(cat files.txt)

Cela fonctionne parce que la commande rm prend une liste de fichiers séparés par des espaces à supprimer et votre enregistrement d'installation est juste une telle liste.

27
répondu nathan 2017-10-23 11:34:31

Maintenant, python vous donne le choix d'installer pip pendant l'installation (je suis sur Windows, et au moins python le fait pour Windows!). Considérant que vous avez choisi d'installer pip lors de l'installation de python (vous n'avez pas à choisir, car il est par défaut), pip est déjà installé pour vous. Ensuite, tapez pip dans l'invite de commande, vous devriez voir une aide arriver. Vous pouvez y trouver les instructions d'utilisation nécessaires. Par exemple, pip list vous montre la liste des paquets installés. Vous pouvez utiliser

pip uninstall package_name

Pour désinstaller tout paquet que vous ne voulez plus. En savoir plus ici (documentation pip) .

11
répondu Sнаđошƒаӽ 2018-06-08 16:37:41

The lazy way: désinstallez simplement à partir du menu D'installation de Windows (si vous utilisez Windows), ou à partir de la commande rpm, à condition de la réinstaller après la création d'un package de distribution.

Par exemple

python setup.py bdist_wininst
dist/foo-1.0.win32.exe

("foo" étant un exemple bien sûr).

8
répondu RedGlyph 2009-10-11 09:24:08

Allez dans votre répertoire de paquets python et supprimez votre .oeuf fichier, par exemple: En python 2.5 (ubuntu): / usr / lib / python2.5 / site-packages /

Dans Python 2.6 (ubuntu): / usr / local / lib / python2. 6 / dist-packages /

5
répondu user149513 2009-10-11 09:27:06

Vous pouvez probablement le faire comme alternative: -

1) Obtenez la version python -

[linux machine]# python
Python 2.4.3 (#1, Jun 18 2012, 14:38:55) 

-> La commande ci-dessus vous donne l'actuelle Version de python qui est 2.4.3

2) récupère le répertoire d'installation de python -

[linux machine]# whereis python
python: /usr/bin/python /usr/bin/python2.4 /usr/lib/python2.4 /usr/local/bin/python2.5 /usr/include/python2.4 /usr/share/man/man1/python.1.gz

- > à partir de la commande ci-dessus, vous pouvez obtenir le répertoire d'installation qui est - / usr / lib/python2.4 / site-packages

3) à partir de là, vous pouvez supprimer les paquets et les fichiers Python egg

[linux machine]# cd /usr/lib/python2.4/site-packages
[linux machine]# rm -rf paramiko-1.12.0-py2.4.egg paramiko-1.7.7.1-py2.4.egg paramiko-1.9.0-py2.4.egg

Cela a fonctionné pour moi.. Et j'ai pu désinstaller le paquet qui me troublait:)

3
répondu COD3R 2013-12-26 06:44:14

Je pense que vous pouvez ouvrir le setup.py, recherchez le nom du paquet, puis demandez à pip de le désinstaller.

En supposant que le nom est disponible dans une variable' METADATA':

pip uninstall $(python -c "from setup import METADATA; print METADATA['name']")
3
répondu ThorSummoner 2015-10-25 03:57:02

Ne répond pas exactement à la question, mais quelque chose qui m'aide tous les jours:

Installez vos paquets avec

pip install .

Cela place le paquet dans $HOME/.local. Désinstaller avec

pip uninstall <package_name>
2
répondu Nico Schlömer 2018-02-16 11:49:00

S'étendant sur ce que Martin a dit, enregistrer la sortie d'installation et un peu de script bash fait l'affaire assez bien. Voici ce que je fais...

for i in $(less install.record);
sudo rm $i;
done;

Et presto. Désinstaller.

1
répondu seabass 2011-07-04 19:36:01

Il peut être préférable de supprimer les fichiers associés en utilisant bash pour lire les commandes, comme ceci:

sudo python setup.py install --record files.txt
sudo bash -c "cat files.txt | xargs rm -rf"
0
répondu Mark Peng 2013-12-21 14:13:28

J'avais exécuté "python setup.py installer" à un moment donné dans le passé accidentellement dans mon environnement mondial, et a eu beaucoup de difficulté à désinstaller. Ces solutions n'ont pas les aider. "PIP uninstall" n'a pas fonctionné avec "impossible de désinstaller ' splunk-appinspect'. Aucun fichier n'a été trouvé pour désinstaller.""sudo pip uninstall" n'a pas fonctionné "impossible de désinstaller l'exigence splunk-appinspect, non installé". J'ai essayé de désinstaller pip, de supprimer le cache pip, de rechercher le paquet sur mon disque dur, etc...

" pip show "m'a finalement conduit à la solution, Le "Location:" pointait vers un répertoire, et le renommage de ce répertoire a provoqué la suppression du package de la liste de pip. J'ai renommé le répertoire, et il n'est pas réapparu dans la liste de pip,et maintenant je peux réinstaller mon paquet dans un virtualenv.

0
répondu mmacvicar 2018-02-16 19:19:23