web-dev-qa-db-fra.com

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 problème 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 le drapeau -H.

parce que je dois maintenant installer avec Sudo.

J'avais python et une poignée de bibliothèques déjà installées sur mon Mac, j'utilise Yosemite. J'ai récemment eu à nettoyer et à réinstaller le système d'exploitation. Maintenant, je reçois ce message et j'ai du mal à comprendre comment le 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 dessus. Cela semble être un problème lors de la mise à niveau vers python 3.4, rien ne semble être à la bonne place, virtualenv ne va pas où je m'attends, etc.

153
Phil Andrews

J'ai également constaté ce changement sur mon Mac lorsque je passais de pip à Sudo pip. Si vous ajoutez -H à Sudo, le message disparaît pour moi. Par exemple.

Sudo -H pip install foo

man Sudo m'indique que -H force Sudo à définir $HOME sur les utilisateurs cibles (la racine dans ce cas).

Il semble donc que pip se penche sur $HOME/Library/Log et Sudo par défaut ne règle pas $HOME sur /root/. Sans surprise, ~/Library/Log vous appartient en tant qu'utilisateur plutôt que root.

Je soupçonne qu'il s'agit d'un changement récent dans pip. Je vais l'exécuter avec Sudo -H pour le moment.

124
Von

pip install --user <package name>(pas besoin de Sudo) a travaillé pour moi pour un problème très similaire.

59
Safwan

Le problème ici est que vous avez en quelque sorte installé Virtualenv avec Sudo. Probablement par accident. Cela signifie que root l'utilisateur réécrira Python les données du package, ce qui rendra tous les fichiers appartenant à root et votre utilisateur normal ne pourra plus écrire ces fichiers. En règle générale, virtualenv doit être utilisé et appartenant à votre utilisateur UNIX normal uniquement.

Vous pouvez résoudre le problème en modifiant le groupe 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 pip devrait pouvoir réécrire ces fichiers.

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

56
Mikko Ohtamaa

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 de package python en 775.
chmod -R 775 ${this_is_your_python_package_path}

le tout

  • lorsque Python3 est bien compilé, l’information est conforme à la question.
  • J'essaie d'utiliser pip3 install requests et 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'
  • donc je cd /usr/local/python3/lib/python3.6/site-packages, puis ls -al et 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 de requête drwxrwxr-x affiché uniquement par l'utilisateur root peut écrire le fichier de requête. Si vous ajoutez yutou (whoami) à la roue de groupe et que vous modifiez le paquet sur la roue de groupe, vous pouvez écrire, alors je peux écrire et le problème résolu.

Comment ajouter du yutou à la roue de groupe? + détecter la roue de groupe, Sudo dscl . -list /groups GroupMembership, vous trouverez:

wheel                    root

le groupe ne contient qu'un seul membre racine. + ajoutez votre mot à la roue de groupe, Sudo dscl . -append /Groups/wheel wheel yutou. + chèque, Sudo dscl . -list /groups GroupMembership:

wheel                    root yutou

modifier le mode de package python

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

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

0
jeffhale