python setup.py désinstaller
J'ai installé un paquet python avec python setup.py install
.
Comment le désinstaller?
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'
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.
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
dansrm -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:
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.
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) .
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).
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 /
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:)
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']")
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>
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.
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"
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.