Il existe une --user
option pour pip qui peut installer un package Python par utilisateur:
pip install --user [python-package-name]
J'ai utilisé cette option pour installer un package sur un serveur pour lequel je n'ai pas d'accès root. Ce dont j'ai besoin maintenant, c'est de désinstaller le package installé sur l'utilisateur actuel. J'ai essayé d'exécuter cette commande:
pip uninstall --user [python-package-name]
Mais j'ai:
no such option: --user
Comment puis-je désinstaller un package que j'ai installé pip install --user
, à part rechercher et supprimer manuellement le package?
J'ai trouvé cet article
pip ne peut pas désinstaller du répertoire des packages de site par utilisateur
qui décrit que la désinstallation des packages du répertoire utilisateur n'est pas prise en charge. Selon l'article, s'il a été correctement mis en œuvre, alors avec
pip uninstall [package-name]
le package installé sera également recherché dans les répertoires utilisateur. Mais un problème demeure pour moi. Que faire si le même package a été installé à l'échelle du système et par utilisateur? Que faire si quelqu'un a besoin de cibler un annuaire d'utilisateurs spécifique?
la source
--user
moment de la désinstallation, sans--user
fera ce que vous voulez.Réponses:
Après avoir testé cela en utilisant Python 3.5 et pip 7.1.2 sous Linux, la situation semble être la suivante:
pip install --user somepackage
installe sur$HOME/.local
, et la désinstallation fonctionne en utilisantpip uninstall somepackage
.Cela est vrai, qu'il soit
somepackage
installé ou non à l'échelle du système en même temps.Si le package est installé aux deux endroits, seul le local sera désinstallé. Pour désinstaller le package à l'échelle du système à l'aide de
pip
, désinstallez-le d'abord localement, puis réexécutez la même commande de désinstallation, avec desroot
privilèges.En plus du répertoire d'installation utilisateur prédéfini,
pip install --target somedir somepackage
installera le package danssomedir
. Il n'y a aucun moyen de désinstaller un package d'un tel emplacement à l'aide depip
. (Mais il y a une ancienne requête pull non fusionnée sur Github qui implémentepip uninstall --target
.)Étant donné que les seuls emplacements où la
pip
désinstallation sera jamais effectuée sont à l'échelle du système et prédéfinis utilisateur local, vous devez exécuter enpip uninstall
tant qu'utilisateur respectif pour désinstaller à partir du répertoire d'installation local d'un utilisateur donné.la source
jedi
installé dans/usr/lib64/python2.7/site-packages/
. Quand je le fais, en tant qu'utilisateur normal:pip install --user jedi
et puispip uninstall jedi
, pip essaie de désinstaller/usr/lib64/python2.7/site-packages/jedi
puis démarre avecPermission denied
. Donc, s'il--user
n'existe pas pour la commande de désinstallation, comment dire à désinstaller de ne pas essayer de désinstaller/usr/lib64/python2.7/site-packages/jedi
mais~/.local/lib64/python3.6/site-packages/jedi
?exemple pour désinstaller le package 'oauth2client' sur MacOS:
la source
Soyez prudent cependant, pour ceux qui utilisent à l'
pip install --user some_pkg
intérieur d'un environnement virtuel .Dans ce cas, vous devez désactiver l'environnement virtuel actuel , puis utiliser le correspondant
python
/pip
exécutable pour répertorier ou désinstaller les packages du site utilisateur:Notez que ce problème a été signalé il y a quelques années . Et il semble que la conclusion actuelle soit:
--user
n'est pas valide à l'intérieur d'unpip
environnement virtuel, car un emplacement utilisateur n'a pas vraiment de sens pour un environnement virtuel.la source
--user
intérieur de l'env virtuel, y a-t-il un moyen de revenir sur ça?, Parce quepip list
ça ne marche pas ....Je pense qu'il est possible de désinstaller les packages installés avec
--user
flag. Celui-ci a fonctionné pour moi;pip freeze --user | xargs pip uninstall -y
Pour python 3;
pip3 freeze --user | xargs pip3 uninstall -y
Mais en quelque sorte, ces commandes ne désinstallent pas setuptools et pip. Après ces commandes (si vous voulez vraiment du python propre), vous pouvez les supprimer avec;
pip uninstall setuptools && pip uninstall pip
la source
La réponse n'est pas encore possible . Vous devez le supprimer manuellement.
la source
Comme l'a mentionné @ thomas-lotze, actuellement l'outillage pip ne fait pas cela car il n'y a pas d'option --user correspondante. Mais ce que je trouve, c'est que je peux archiver ~ / .local / bin et rechercher le pip #. # Qui me semble correspondre à l'option --user.
Dans mon cas:
Et puis désinstallez simplement avec la version pip spécifique.
la source
./pip2 freeze | grep -v "^-e" | xargs pip uninstall -y
pour tout sauf les packages installés en mode modifiableJ'utilise Anaconda version 4.3.22 et un environnement python3.6.1 et j'ai eu ce problème. Voici l'historique et le correctif:
J'ai fait cela dans mon environnement python3.6 et j'ai eu cette erreur.
Ensuite, j'ai essayé de télécharger python3.6 et de placer python3.dll dans le dossier et dans divers dossiers. Rien n'a changé.
enfin, cela l'a corrigé:
(l'autre version de conda-forge est toujours installée) Cela n'a laissé que la version de conda, et cela fonctionne en 3.6.
travail!
la source