Comment faire pour désinstaller un paquet installé avec le pip install --utilisateur
Il y a un --user
option pour le pep qui peut installer un paquet Python par l'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 accès à la racine. 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 eu:
no such option: --user
Comment puis-je désinstaller un package que j'ai installé avec pip install --user
, autres que manuellement trouver et de supprimer le paquet?
J'ai trouvé cet article
pip ne peut pas désinstaller à partir d'utilisateur par site-packages répertoire
qui explique que la désinstallation des paquets de répertoire de l'utilisateur n'est pas pris en charge. Selon l'article, si il a été correctement mis en œuvre, puis avec
pip uninstall [package-name]
le package installé sera également l'objet de recherches dans les répertoires des utilisateurs. Mais un problème subsiste pour moi. Si le même paquet a été installé à la fois à l'échelle du système et par utilisateur?
Que faire si quelqu'un a besoin de cibler un utilisateur spécifique répertoire?
- Non, vous devez définir un virtualenv par l'utilisateur:le groupe et donner un bon système d'autorisations pour le dossier qui le contient.
- Il n'y a pas moyen d'installer un package à l'échelle du système pour tous les utilisateurs, puis sélectionnez désinstaller pour certains utilisateurs. Si le paquet a été installé comme
--user
puis désinstallation sans--user
faire ce que vous souhaitez. - Je n'ai pas la permission à l'échelle du système et ne le veux pas, j'ai juste besoin de le désinstaller par l'utilisateur courant
- Figure dans quel répertoire vous ne disposez pas des autorisations pour l'enlever, et de fixer ses autorisations, ou la déplacer manuellement sur le côté.
- Connexes: pip n'a pas de désinstaller des paquets en dehors de sys.préfixe
Vous devez vous connecter pour publier un commentaire.
Avoir testé ce à l'aide de Python 3.5 et pip 7.1.2 sur Linux, la situation semble être ceci:
pip install --user somepackage
installe à$HOME/.local
, et la désinstallation, il fonctionne à l'aide depip uninstall somepackage
.Cela est vrai ou non
somepackage
est également installé à l'échelle du système en même temps.Si le paquet est installé à deux endroits, seul le local sera désinstallé. Pour désinstaller le package à l'échelle du système à l'aide de
pip
, désinstallez d'abord localement, puis de lancer la même commande de désinstallation de nouveau, avecroot
privilèges.En outre à l'utilisateur prédéfini répertoire d'installation,
pip install --target somedir somepackage
installer le paquet danssomedir
. Il n'y a aucun moyen de désinstaller un package à partir d'une telle place à l'aide depip
. (Mais il est un peu vieux non fusionné pull request sur Github qui implémentepip uninstall --target
.)Depuis les seuls endroits
pip
sera jamais désinstaller à partir du système à l'échelle et prédéfinis par l'utilisateur local, vous devez exécuterpip uninstall
que l'utilisateur concerné pour désinstaller à partir d'une donnée locale de l'utilisateur, le répertoire d'installation.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 tente de désinstaller/usr/lib64/python2.7/site-packages/jedi
et puis des coups de pied avecPermission denied
. Donc, si--user
n'existe pas pour la commande de désinstallation, comment dois-je dire à désinstaller pas pour essayer de désinstaller/usr/lib64/python2.7/site-packages/jedi
mais~/.local/lib64/python3.6/site-packages/jedi
?exemple pour désinstaller le paquet 'oauth2client" sur MacOS:
Attention tout de même, pour ceux qui à l'aide de
pip install --user some_pkg
à l'intérieur d'un environnement virtuel.Dans ce cas, vous devez désactiver l'actuel environnement virtuel, puis utilisez le raccourci
python
/pip
exécutable de liste ou de désinstaller le site de l'utilisateur paquets:À noter que cette question a été signalé il ya quelques années. Et il semble que la actuelle conclusion est:
--user
n'est pas valable à l'intérieur d'un virtuel env depip
, depuis l'emplacement de l'utilisateur n'a pas vraiment de sens pour un environnement virtuel.--user
à l'intérieur du virtuel env, est-il un moyen de revenir qui?, parce quepip list
ne fonctionne pas....La réponse est Pas encore possible. Vous devez le supprimer manuellement.
Comme @thomas-lotze a mentionné, actuellement pip outillage de ne pas le faire car il n'y a aucune option --user. Mais ce que je trouve est que je peux vérifier dans ~/.local/bin et regardez pour le pip#.# qui me ressemble cela correspond à l'option --user.
Dans mon cas:
Et puis il suffit de le désinstaller avec le pip version.
./pip2 freeze | grep -v "^-e" | xargs pip uninstall -y
de tout, sauf de paquets installés en mode éditableJe suis en cours d'exécution Anaconda version 4.3.22 et un python3.6.1 environnement, et eu ce problème. Voici l'histoire et la correction:
Je l'ai fait dans mon python3.6 de l'environnement et a obtenu cette erreur.
Ensuite, j'ai essayé de télécharger python3.6 et de mettre de l'python3.dll dans le dossier et dans divers dossiers. rien n'a changé.
enfin, ce qu'il est corrigé:
(les autres conda-forge version est encore installé) Cela ne laisse que la conda version, et qui fonctionne en 3.6.
de travail!
Je pense qu'il est possible de désinstaller des paquets installés avec
--user
drapeau. Cette une a fonctionné pour moi;pip freeze --user | xargs pip uninstall -y
Pour python 3;
pip3 freeze --user | xargs pip3 uninstall -y
Mais de toute façon, ces commandes ne s'installe pas setuptools et. Après ceux de la commande (si vous voulez vraiment propre python), vous pouvez les supprimer avec;
pip uninstall setuptools && pip uninstall pip