pip install: veuillez vérifier les permissions et le propriétaire de ce répertoire

lors de l'installation de pip et python j'ai rencontré un qui dit:

le répertoire '/ Users/Parthenon/Library/Logs / pi' ou son répertoire parent n'est pas la propriété de l'utilisateur courant et le journal de débogage a été désactivé. Veuillez vérifier les autorisations et propriétaire de ce répertoire. Si vous exécutez pip avec sudo,vous pouvez vouloir le drapeau-H.

parce que je dois maintenant installer en utilisant sudo .

j'ai eu python et une poignée de bibliothèques déjà installées sur mon Mac, j'exécute Yosemite. Récemment, j'ai dû faire un nettoyage propre et puis réinstaller le système D'exploitation. Maintenant je reçois cette invitation et j'ai de la difficulté à trouver comment la changer

avant ma ligne de commande était Parthenon$ maintenant c'est Philips-MBP:~ Parthenon$

je suis l'unique propriétaire de cet ordinateur et c'est le seul compte sur elle. Cela semble être un problème lors de la mise à niveau vers python 3.4, rien ne semble être au bon endroit, virtualenv ne va pas là où je l'attends, etc.

142
demandé sur Gautam Savaliya 2015-01-10 01:05:23

3 réponses

j'ai aussi vu ce changement sur mon Mac quand je suis passé de "pip" à "sudo pip "

ajouter '- H ' à sudo fait disparaître le message pour moi. Par exemple:

sudo -h pip install foo

'man sudo' me dit que' - H ' fait que sudo fixe $HOME aux utilisateurs cibles (root dans ce cas).

donc il semble que pip cherche dans $HOME / Library / Log et sudo par défaut n'est pas paramétré HOME to ~root. Il n'est pas surprenant que ~/Library/Log appartienne à vous en tant qu'utilisateur plutôt qu'en tant que root.

je soupçonne qu'il s'agit d'un changement récent dans le pip. Je vais le faire avec "sudo-H" pour que ça marche.

119
répondu Von 2015-01-10 19:56:15

ce qui est le problème ici, c'est que vous avez d'une manière ou d'une autre installé virtualenv en utilisant sudo . Probablement par accident. Cela signifie que root l'utilisateur va réécrire les données du paquet Python, ce qui fait que tous les fichiers appartenant à root et votre utilisateur normal ne peut plus écrire ces fichiers. Habituellement virtualenv doit être utilisé et détenu par votre utilisateur UNIX normal seulement.

vous pouvez corriger le problème en changeant les permissions de fichier UNIX pack à votre utilisateur. Essayez:

$ sudo chown -R USERNAME /Users/USERNAME/Library/Logs/pip
$ sudo chown -R USERNAME /Users/USERNAME/Library/Caches/pip

puis pip devrait être capable d'écrire ces fichiers à nouveau.

plus d'informations sur la gestion des droits des fichiers UNIX

51
répondu Mikko Ohtamaa 2015-09-05 12:55:40

pip install --user <package name> (pas de sudo nécessaire) a fonctionné pour moi pour un problème très similaire.

48
répondu Safwan 2017-03-09 12:41:23