pip install -r requirements.txtfalla con la excepción a continuación OSError: [Errno 13] Permission denied: '/usr/local/lib/.... ¿Qué pasa y cómo soluciono esto? (Estoy tratando de configurar Django )
Installing collected packages: amqp, anyjson, arrow, beautifulsoup4, billiard, boto, braintree, celery, cffi, cryptography, Django, django-bower, django-braces, django-celery, django-crispy-forms, django-debug-toolbar, django-disqus, django-embed-video, django-filter, django-merchant, django-pagination, django-payments, django-storages, django-vote, django-wysiwyg-redactor, easy-thumbnails, enum34, gnureadline, idna, ipaddress, ipython, kombu, mock, names, ndg-httpsclient, Pillow, pyasn1, pycparser, pycrypto, PyJWT, pyOpenSSL, python-dateutil, pytz, requests, six, sqlparse, stripe, suds-jurko
Cleaning up...
Exception:
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 122, in main
status = self.run(options, args)
File "/usr/lib/python2.7/dist-packages/pip/commands/install.py", line 283, in run
requirement_set.install(install_options, global_options, root=options.root_path)
File "/usr/lib/python2.7/dist-packages/pip/req.py", line 1436, in install
requirement.install(install_options, global_options, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/pip/req.py", line 672, in install
self.move_wheel_files(self.source_dir, root=root)
File "/usr/lib/python2.7/dist-packages/pip/req.py", line 902, in move_wheel_files
pycompile=self.pycompile,
File "/usr/lib/python2.7/dist-packages/pip/wheel.py", line 206, in move_wheel_files
clobber(source, lib_dir, True)
File "/usr/lib/python2.7/dist-packages/pip/wheel.py", line 193, in clobber
os.makedirs(destsubdir)
File "/usr/lib/python2.7/os.py", line 157, in makedirs
mkdir(name, mode)
OSError: [Errno 13] Permission denied: '/usr/local/lib/python2.7/dist-packages/amqp-1.4.6.dist-info'
python
permissions
pip
install
RunLoop
fuente
fuente

Respuestas:
Opción a) Cree un virtualenv, actívelo e instale:
Opción b) Instalar en su homedir:
Mi recomendación utiliza la opción segura (a), para que los requisitos de este proyecto no interfieran con los requisitos de otros proyectos.
fuente
sudo:pip: command not founden mi instancia de aws ec2 cuando ejecuté este comando. Por favor ayuda.sudoconsejo. a pesar de que funciona ahora, te dará muchos dolores de cabeza en el futuro.Realmente deberíamos dejar de recomendar el uso de
sudowithpip install. Es mejor intentarlo primeropip install --user. Si esto falla, eche un vistazo a la publicación superior aquí .La razón por la que no debe usar
sudoes la siguiente:Cuando ejecuta pip con
sudo, está ejecutando código arbitrario de Python desde Internet como usuario root, lo cual es un riesgo de seguridad bastante grande. Si alguien coloca un proyecto malicioso en PyPI y usted lo instala, le da acceso de atacante a su máquina.fuente
sudo x install, para todosx(incluidox = make).--userinstala el paquete en su directorio de inicio, en lugar de la raíz. Instalar algo en esta ubicación no requiere ningún privilegio adicional.sudofue eliminada hace un año. Esta respuesta es obsoleta; revísela y actualícela. También debe mencionar las instalaciones y permisos por usuario frente a todo el sistema. No use su respuesta para criticar directamente otras respuestas, que tenderán a quedar obsoletas rápidamente.Está intentando instalar un paquete en la ruta de todo el sistema sin tener el permiso para hacerlo.
En general, puede usarsudopara obtener temporalmente permisos de superusuario bajo su responsabilidad para instalar el paquete en la ruta de todo el sistema:Encuentra más sobresudoaquí .En realidad, esta es una mala idea y no hay un buen caso de uso, vea el comentario de @ wim.
Si no desea realizar cambios en todo el sistema, puede instalar el paquete en su ruta por usuario utilizando el
--userindicador.Todo lo que se necesita es:
Finalmente, para un control aún más fino , también puede usar un virtualenv , que podría ser la solución superior para un entorno de desarrollo, especialmente si está trabajando en múltiples proyectos y desea realizar un seguimiento de las dependencias de cada uno.
Después de activar tu virtualenv con
$ my-virtualenv/bin/activateel siguiente comando instalará el paquete dentro de virtualenv (y no en la ruta de todo el sistema):
pip install -r requirements.txtfuente
pyenv/pipenv, deberíamos mencionarlos, en lugar devirtualenv(oconda-env) b) sudo considerado dañino, y ver las otras respuestas por qué. Ponga la respuesta basada en env primero, y la sudo última, con un gran descargo de responsabilidad.sudo pip install -r requirements.txtnunca es correcto El entorno python del sistema pertenece al sistema, punto . Si instala más cosas pitón en el sistema, lo hacen con el gestor de paquetes solamente (por ejemplosudo yum install,apt-get, etc ...) ya que esos repositorios deben tener versiones seguras y compatibles de bibliotecas en vano.sudo make install, generalmente compilado + enlazado, no es realmente análogo a unsudo pip installya que la instalación en el sistema Python env puede invalidar las dependencias . Supongamos que hay un servicio del sistemapython-frobnicator, que depende defroblib(esto también estará en el administrador de paquetes y se anclaría a una versión compatible), y luegosudo pip installalguna otra aplicación o lib que dependa de "froblib > 1.2". Pip felizmente "actualizará" la versión del sistemafroblibcon una más nueva, que puede ser incompatible / no probada y romper el sistema.Solo aclarando lo que funcionó para mí después de mucho dolor en Linux (basado en ubuntu) en los permisos de permiso denegado, y aprovechando la respuesta de Bert anterior, ahora uso ...
o si ejecuta pip en un archivo de requisitos ...
y estos funcionan de manera confiable para cada instalación de pip, incluida la creación de entornos virtuales.
Sin embargo, la solución más limpia en mi experiencia adicional ha sido instalar
python-virtualenvyvirtualenvwrapperconsudo apt-get installel nivel del sistema.Luego, dentro de entornos virtuales, use
pip installsin la--userbandera Y sinsudo. Mucho más limpio, más seguro y más fácil en general.fuente
pip install --user -r requirements.txtEl usuario no tiene permiso de escritura para algunas rutas de instalación de Python. Puede dar el permiso de la siguiente manera:
Por lo tanto, debe dar permiso, luego intente instalarlo nuevamente, si tiene nuevas rutas también debe dar permiso:
fuente
/usrnormalmente serían propiedad de root, en estos días. El uso recursivo de allí podría arruinar su sistema. EVITAR .Si necesita permisos, no puede usar 'pip' con 'sudo'. Puedes hacer un truco para poder usar 'sudo' e instalar el paquete. Simplemente coloque 'sudo python -m ...' delante de su comando pip.
fuente
Entonces, obtuve este mismo error exacto por una razón completamente diferente. Debido a un error pip de Homebrew + totalmente separado, seguí esta solución que figura en los documentos de ayuda de Google Cloud, donde creas un archivo .pydistutils.cfg en tu directorio de inicio. Este archivo tiene una configuración especial que solo se supone que debes usar para instalar ciertas bibliotecas. Debería haber eliminado ese archivo disutils.cfg después de instalar los paquetes, pero olvidé hacerlo. Entonces la solución para mí fue en realidad solo ...
rm ~/.pydistutils.cfg.Y luego todo funcionó normalmente. Por supuesto, si tiene alguna configuración en ese archivo por una razón real, entonces no querrá simplemente corregir ese archivo. Pero en caso de que alguien más haya hecho esa solución, y se haya olvidado de eliminar ese archivo, ¡esto fue el truco para mí!
fuente
Es debido problema de permiso,
por defecto sería
/usr/local/lib/python2.7/o tratar,
y luego decir,
pip install -r requirements.txtesto se instalará dentro de su entornono digas,
sudo pip install -r requirements.txtesto se instalará en la ruta arbitraria de Python.fuente