sierra not mac from found cant python pip sudo osx-yosemite

python - not - pip install: compruebe los permisos y el propietario de ese directorio



install pip windows 10 (5)

Al instalar pip y python me he encontrado con un que dice:

El directorio ''/ Users / Parthenon / Library / Logs / pi'' o su directorio padre no es propiedad del usuario actual y el registro de depuración ha sido deshabilitado. Verifique los permisos y el propietario de ese directorio. Si ejecuta pip con sudo, es posible que desee la bandera -H.

porque ahora tengo que instalar usando sudo .

Tenía Python y un puñado de bibliotecas ya instaladas en mi Mac, estoy ejecutando Yosemite. Recientemente tuve que limpiar y luego reinstalar el sistema operativo. Ahora recibo este mensaje y tengo problemas para descubrir cómo cambiarlo.

Antes mi línea de comando era Parthenon$ ahora es Philips-MBP:~ Parthenon$

Soy el único propietario de esta computadora y esta es la única cuenta en ella. Esto parece ser un problema al actualizar a Python 3.4, nada parece estar en el lugar correcto, virtualenv no va a donde esperaba, etc.


información básica

  • sistema: mac os 18.0.0
  • usuario actual: yutou

la clave

  1. agregar la cuenta corriente al grupo de ruedas

sudo dscl . -append /Groups/wheel wheel $(whoami)

  1. modifique el modo de paquete python a 775.

chmod -R 775 ${this_is_your_python_package_path}

toda la cosa

  • cuando python3 se compiló bien, la información es como dice la pregunta.
  • Intento usar las pip3 install requests y obtuve:

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''

  • así que cd /usr/local/python3/lib/python3.6/site-packages , luego ls -al y obtuve:

drwxr-xr-x 6 root wheel 192B 2 27 18:06 requests/

cuando vi esto, entendí, makedirs es una acción de escritura, pero el modo de solicitudes drwxrwxr drwxrwxr-x visualiza solo el usuario root puede escribir el archivo de solicitudes. Si agrego yutou ( whoami ) a la rueda de grupo, y modifica el paquete a la rueda de grupo puede escribir, entonces puedo escribir, y el problema se resuelve.

¿Cómo agregar yutou a la rueda de grupo? + detectar rueda de grupo, sudo dscl . -list /groups GroupMembership sudo dscl . -list /groups GroupMembership , encontrará:

wheel root

el grupo rueda solo un miembro raíz. + agregue yutou a la rueda de grupo, sudo dscl . -append /Groups/wheel wheel yutou sudo dscl . -append /Groups/wheel wheel yutou . + cheque, sudo dscl . -list /groups GroupMembership sudo dscl . -list /groups GroupMembership :

wheel root yutou

modificar el modo del paquete python

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


El problema aquí es que de alguna manera te instalaste en virtualenv usando sudo . Probablemente por accidente. Esto significa root usuario root reescribirá los datos del paquete Python, haciendo que todos los archivos sean propiedad de root y su usuario normal ya no pueda escribir esos archivos. Por lo general, virtualenv debe ser utilizado y propiedad de su usuario normal de UNIX únicamente.

Puede solucionar el problema cambiando el paquete de permisos de archivos UNIX a su usuario. Tratar:

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

entonces pip debería poder volver a escribir esos archivos.

Más información sobre la gestión de permisos de archivos UNIX


Si modificó su variable $ PATH, eso también podría causar el problema. Si cree que ese podría ser el problema, verifique su ~ / .bash_profile o ~ / .bashrc


También vi este cambio en mi Mac cuando pasé de ejecutar pip a sudo pip . Agregar -H a sudo hace que el mensaje desaparezca para mí. P.ej

sudo -H pip install foo

man sudo me dice que -H hace que sudo establezca $HOME para los usuarios objetivo (root en este caso).

Entonces parece que pip está buscando en $HOME/Library/Log y sudo por defecto no está configurando $HOME en /root/ . No es sorprendente que ~/Library/Log sea ​​propiedad de usted como usuario en lugar de root.

Sospecho que esto es un cambio reciente en pip. Lo ejecutaré con sudo -H por ahora para evitarlo.


pip install --user <package name> (no se necesita sudo) funcionó para mí por un problema muy similar.