Ceci est identique à cette question, mais le titre est incorrect. Et les symptômes sont plus odieux que ce qui est expliqué dans ce post .
D'une mise à niveau Ubuntu 14.04 à 16.04 - Pip affiche les paquetages installés dans un environnement virtuel actif, même lorsque venv est désactivé.
De plus, lors de l’installation d’un paquet, pip émet cette erreur:
The directory '/home/user/.cache/pip/http' or its parent directory is
not owned by the current user and the cache has been disabled. Please
check the permissions and owner of that directory. If executing pip
with Sudo, you may want Sudo's -H flag. The directory
'/home/user/.cache/pip' or its parent directory is not owned by the
current user and caching wheels has been disabled. check the
permissions and owner of that directory. If executing pip with Sudo,
you may want Sudo's -H flag.
Je reçois également une erreur d'autorisation lorsque je fais pip install <package_name>
Je peux contourner cela avec pip install --user <package_name>
. Et Sudo ne fonctionnera comme ci-dessus qu'avec l'option -H
.
Toute idée ou solution possible à cette erreur serait formidable! Merci d'avance!
Ed
J'ai trouvé la réponse à la question. Cela se produit parce que Virtualenv est installé avec Sudo et que le fichier pip/.cache appartient à l'utilisateur. Certains paquets nécessiteront un accès à Sudo. Vous trouverez ci-dessous des informations sur le problème et la référence. J'ai ajouté un guide idiots ci-dessous l'explication de cette erreur.
Plus d'informations peuvent être lues ici https://pip.pypa.io/en/stable/user_guide/#user-installs .
Mon correctif
Suppression de tous les packages de projet dans ~/user/.cache. Lequel a été installé "à tort" pip uninstall -r <path_to_project_requirements.txt>
(préfixe N.B. avec Sudo lorsque requis).
Suppression de virtualenv Sudo pip uninstall virtualenv
Installez virtualenv en utilisant: pip --user install virtualenv
. Ce qui va arrêter les problèmes de propriété. Et, vous évitez d'avoir à l'installer globalement avec Sudo - vous pourriez également utiliser le wrapper virtualenv qui vous épargnerait probablement une partie de cette douleur, mais je ne suis pas ...
Créez votre répertoire de projet: mkdir <project>
et entrez-y cd project
.
virtualenv venv
créez votre dossier d'environnement local pour installer vos packages dans . venv/bin/activate
continuer l'installation des exigences de votre projet.