Il existe une option --user
pour pip qui permet d'installer un paquet Python par utilisateur :
pip install --user [python-package-name]
J'ai utilisé cette option pour installer un paquet sur un serveur pour lequel je n'ai pas d'accès root. Ce dont j'ai besoin maintenant est de désinstaller le paquet installé sur l'utilisateur actuel. J'ai essayé d'exécuter cette commande :
pip uninstall --user [python-package-name]
Mais j'ai obtenu :
no such option: --user
Comment puis-je désinstaller un paquet que j'ai installé avec pip install --user
, autrement qu'en trouvant et en supprimant manuellement le paquet ?
J'ai trouvé cet article
[pip cannot uninstall from per-user site-packages directory][1]
qui décrit que la désinstallation des paquets depuis le répertoire utilisateur n'est pas supportée. Selon l'article, si cela a été mis en œuvre correctement, alors avec
pip uninstall [package-name]
le paquet qui a été installé sera également recherché dans les répertoires des utilisateurs. Mais un problème subsiste pour moi. Que faire si le même paquet a été installé à la fois sur le système et par utilisateur ? Que faire si quelqu'un a besoin de cibler un répertoire utilisateur spécifique ?
[1] : https://stackoverflow.com/questions/33412974/uninstall-python-package-per-user
Après avoir testé ceci en utilisant Python 3.5 et pip 7.1.2 sur Linux, la situation semble être la suivante :
pip install --user somepackage
installe dans $HOME/.local
, et la désinstallation fonctionne en utilisant pip uninstall somepackage
.
Ceci est vrai, que somepackage
soit ou non installé en même temps sur l'ensemble du système.
Si le paquet est installé aux deux endroits, seul le paquet local sera désinstallé. Pour désinstaller le paquetage à l'échelle du système en utilisant pip
, désinstallez-le d'abord localement, puis exécutez à nouveau la même commande de désinstallation, avec les privilèges root
.
En plus du répertoire d'installation prédéfini de l'utilisateur, pip install --target somedir somepackage
installera le paquet dans somedir
. Il n'y a aucun moyen de désinstaller un paquet d'un tel endroit en utilisant pip
. (Mais il y a une demande de pull un peu ancienne sur Github qui implémente pip uninstall --target
).
Puisque les seuls endroits où pip
peut désinstaller sont ceux du système et ceux prédéfinis par l'utilisateur, vous devez exécuter pip uninstall
en tant qu'utilisateur respectif pour désinstaller le répertoire d'installation local d'un utilisateur donné.