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
- agregar la cuenta corriente al grupo de ruedas
sudo dscl . -append /Groups/wheel wheel $(whoami)
- 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
, luegols -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.