mac - pip python
Cómo evitar el "Permiso denegado" al usar pip con virtualenv (6)
En mi caso, estaba usando mkvirtualenv
, pero no le dije que iba a usar python3. Tengo este error
mkvirtualenv hug
pip3 install hug -U
....
error: could not create ''/usr/lib/python3.4/site-packages'': Permission denied
Funcionó después de especificar python3:
mkvirtualenv --python=/usr/bin/python3 hug
pip3 install hug -U
Intento implementar un paquete de Python con pip
en un entorno virtual en una máquina Ubuntu, pero encuentro un problema relacionado con los permisos. Por ejemplo:
(TestVirtualEnv)test@testServer:~$ pip install markdown2
termina por
error: no se pudo crear ''/home/test/virtualenvs/TestVirtualEnv/lib/python3.3/site-packages/markdown2.py'': permiso denegado
No puedo hacer sudo
, ya que instalará el paquete globalmente, y no dentro del entorno virtual. chown
ed site-packages
; ls
muestra solo los directorios relacionados con easy_install
, pip
y setuptools
, y nada relacionado con Markdown.
¿Cómo implementar un paquete en un entorno virtual con pip
sin encontrar errores relacionados con los permisos?
Mientras creas virtualenv, si utilizas sudo, el directorio se crea con privilegios de raíz. Por lo tanto, cuando intentas instalar un paquete con un usuario que no sea sudo, no tendrás permiso para instalarlo. Así que siempre crea virtualenv sin sudo e instala sin sudo.
También puede copiar los paquetes instalados en python global a virtualenv.
cp -r /lib/python/site-packages/* virtualenv/lib/python/site-packages/
No activaste el entorno virtual antes de usar pip.
Pruébalo con:
$(your venv path) . bin/activate
Y luego use pip -r Requirements.txt en su carpeta principal
No creé mi virtualenv usando sudo. Así que la respuesta de Sebastian no se aplicó a mí. Mi proyecto se llama utils
. utils
directorio de utils
y vi esto:
-rw-r--r-- 1 macuser staff 983 6 Jan 15:17 README.md
drwxr-xr-x 6 root staff 204 6 Jan 14:36 utils.egg-info
-rw-r--r-- 1 macuser staff 31 6 Jan 15:09 requirements.txt
Como puede ver, utils.egg-info
es propiedad de root
no de macuser
. Es por eso que me estaba dando permission denied
error. También tuve que eliminar /Users/macuser/.virtualenvs/armoury/lib/python2.7/site-packages/utils.egg-link
ya que también fue creado por root
. Hice pip install -e .
de nuevo después de quitarlos, y funcionó.
virtualenv
problemas de permisos de virtualenv
pueden ocurrir cuando creas virtualenv
como sudo
y luego operas sin sudo
en virtualenv
.
Como se descubrió en el comentario de su pregunta, la solución aquí es crear el virtualenv
sin sudo
para poder trabajar (especialmente escribir) sin sudo
.
Solución:
Si creó el virtualenv como root, ejecute el siguiente comando:
sudo chown -R your_username:your_username path/to/virtuaelenv/
Esto probablemente solucionará su problema.
Aclamaciones