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

155

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

Le répertoire '/ Users / Parthenon / Library / Logs / pi' ou son répertoire parent n'appartient pas à l'utilisateur actuel et le journal de débogage a été désactivé. Veuillez vérifier les autorisations et le propriétaire de ce répertoire. Si vous exécutez pip avec sudo, vous voudrez peut-être l'indicateur -H.

car je dois maintenant installer en utilisant sudo.

J'avais python et une poignée de bibliothèques déjà installées sur mon Mac, j'exécute Yosemite. J'ai récemment dû faire un nettoyage propre, puis réinstaller le système d'exploitation. Maintenant, j'obtiens cette invite et j'ai du mal à comprendre comment la changer

Avant ma ligne de commande était Parthenon$maintenant c'estPhilips-MBP:~ Parthenon$

Je suis l'unique propriétaire de cet ordinateur et c'est le seul compte sur celui-ci. 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'attendais, etc.

Phil Andrews
la source
Votre nom de compte est-il Philip?
komaromy le
Je viens de remarquer que cela se produit lors de l'utilisation de pip sur ma propre machine hier, que voulez-vous dire par virtualenv ne va pas là où vous vous attendez?
Padraic Cunningham
J'ai installé Python 3.4 sur ma machine, mais quand j'exécute python dans mon terminal, il fonctionne toujours 2.7 même après avoir traversé tout le processus d'installation. Je n'ai mentionné virtualenv que parce que je m'attendrais généralement à le trouver dans Library / Python / 3.4 mais il n'y a pas de Library / Python / 3.4
Phil Andrews
vous devez utiliser quelque chose comme python3 ou python3.4 pour utiliser l'interpréteur python3, les éléments en cours de réouverture ne sont qu'un paramètre, ubuntu a la même option.
Padraic Cunningham
@PadraicCunningham avez-vous le même problème de pip? Avez-vous récemment mis à niveau vers Yosemite?
Phil Andrews

Réponses:

127

J'ai également vu ce changement sur mon Mac lorsque je suis passé de la course pipà pied sudo pip. L'ajout -Hà sudo fait disparaître le message pour moi. Par exemple

sudo -H pip install foo

man sudome dit que les -Hcauses sudoà définir $HOMEpour les utilisateurs cibles (root dans ce cas).

Il semble donc que pip recherche $HOME/Library/Loget sudone soit pas défini par défaut $HOMEsur /root/. Il n'est pas surprenant ~/Library/Logque vous apparteniez à vous en tant qu'utilisateur plutôt qu'en tant que root.

Je soupçonne qu'il s'agit d'un changement récent de pip. Je vais l'exécuter avec sudo -Hpour l'instant pour contourner le problème.

Von
la source
18
Veuillez noter que l'utilisation sudo pipest totalement incorrecte. Pour plus d'informations, veuillez vous référer ici stackoverflow.com/questions/33004708/…
Mikko Ohtamaa
J'ai eu le même problème, mais ouais maintenant je dois installer en utilisant le drapeau "-H".
Malachi Bazar
62

Quel est le problème ici, c'est que vous avez en quelque sorte installé dans virtualenv en utilisant sudo. Probablement par accident. Ça signifieroot utilisateur réécrira les données du package Python, rendant tous les fichiers appartenant à root et votre utilisateur normal ne pourra plus écrire ces fichiers. En général, virtualenv ne doit être utilisé et détenu que par votre utilisateur UNIX normal.

Vous pouvez résoudre le problème en modifiant le pack d'autorisations de fichier UNIX pour votre utilisateur. Essayer:

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

alors pipdevrait pouvoir réécrire ces fichiers.

Plus d'informations sur la gestion des autorisations de fichiers UNIX

Mikko Ohtamaa
la source
Pip écrit toujours avec l'erreur. J'ai également un avertissement similaire et mes autorisations sont correctes, l'OP n'utilise pas réellement un virtualenv, il serait donc logique que l'installation de packages à l'échelle mondiale nécessite sudo.
Padraic Cunningham
1
@PadraicCunningham: Si pip donne une erreur indiquant que vos autorisations sont incorrectes, veuillez afficher vos autorisations de fichier, afin que nous puissions déterminer ce qui ne va pas avec elles. Sinon, aider serait un tir dans le noir.
Mikko Ohtamaa
Je vous suggère également d'ouvrir une autre question, car votre problème pourrait être différent de celui de l'auteur original
Mikko Ohtamaa
En utilisant mon propre nom d'utilisateur, j'ai reçu une erreur: Entrée: sudo chown -R USERNAME / Users / USERNAME / Library / Logs / pip Sortie: chown: / Users / USERNAME / Library / Logs / pip: Aucun fichier ou répertoire de ce type
user2755660
61

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

Safwan
la source
Vous devez donner au moins une exigence pour l'installation (voir "pip help install")
Amir
0

informations de base

  • système: mac os 18.0.0
  • utilisateur actuel: yutou

la clé

  1. ajouter le compte courant au groupe de roues
sudo dscl . -append /Groups/wheel wheel $(whoami)
  1. modifiez le mode du package python en 775.
chmod -R 775 ${this_is_your_python_package_path}

le tout

  • lorsque python3 est bien compilé, les informations sont exactement comme la question posée.
  • J'essaye d'utiliser pip3 install requestset j'ai:
File "/usr/local/python3/lib/python3.6/os.py", line 220, in makedirs
    mkdir(name, mode)
PermissionError: [Errno 13] Permission denied: 
'/usr/local/python3/lib/python3.6/site-packages/requests'
  • alors je cd /usr/local/python3/lib/python3.6/site-packages, alors ls -alet j'ai:
drwxr-xr-x    6 root   wheel   192B  2 27 18:06 requests/

quand j'ai vu cela, j'ai compris, makedirs est une action d'écriture, mais le mode requêtes drwxrwxr-xn'affiche que l'utilisateur root peut écrire le fichier de requêtes. Si ajoutez yutou (whoami ) à la roue de groupe et modifiez le paquet pour que la roue de groupe puisse écrire, alors je peux écrire et le problème est résolu.

Comment vous ajouter à la roue de groupe? + détecter la roue de groupe`` sudo dscl . -list /groups GroupMembershipvous trouverez:

wheel                    root

le groupe roue un seul membre root. + Ajouter yutou à la roue de groupe, sudo dscl . -append /Groups/wheel wheel yutou. + Chèque, sudo dscl . -list /groups GroupMembership:

wheel                    root yutou

modifier le mode du package python

chmod -R 775 /usr/local/python3/lib/python3.6
kougazhang
la source
0

Si vous avez modifié votre variable $ PATH, cela pourrait également causer le problème. Si vous pensez que cela pourrait être le problème, vérifiez votre ~ / .bash_profile ou ~ / .bashrc

Jeffhale
la source