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.
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.
pip install --user <package name>
(pas besoin de Sudo) a travaillé pour moi pour un problème très similaire.
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
Sudo dscl . -append /Groups/wheel wheel $(whoami)
chmod -R 775 ${this_is_your_python_package_path}
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'
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
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