pip ipython failed-installation osx-elcapitan

OSX El Capitan: sudo pip install OSError:[Errno: 1] Operación no permitida



ipython failed-installation (12)

TL; corrección de DR $ PATH

  1. Use pip install --user package_name para instalar un paquete que debe incluir ejecutables de CLI.
  2. Inicie un shell de Python e import package_name
  3. Encuentre dónde ocurre lib/python/... en la salida y reemplácelo todo con bin
  4. Es probable que sea $HOME/Library/Python/2.7/bin

Detalles

Debido a la nueva Protección de integridad del sistema en macOS 10.11 El Capitan, ya no puede sudo pip install . No discutiremos los méritos de eso aquí.

Otra respuesta explica que debe pip install --user que es correcto. Pero lo enviaron a los callejones traseros para averiguar qué hacer con su $PATH para que pueda acceder a los ejecutables instalados. Afortunadamente, ya he resuelto una necesidad similar de una pregunta no relacionada .

Aquí hay una transcripción de cómo resolví el problema en uno de mis sistemas. Lo estoy incluyendo todo más que el $PATH que funcionó para mí, porque su sistema puede ser diferente al mío. Este proceso debería funcionar para todos.

Installing collected packages: six, pyparsing, packaging, appdirs, setuptools Exception: Traceback (most recent call last): File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/basecommand.py", line 215, in main status = self.run(options, args) File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/commands/install.py", line 342, in run prefix=options.prefix_path, File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/req/req_set.py", line 784, in install **kwargs File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/req/req_install.py", line 851, in install self.move_wheel_files(self.source_dir, root=root, prefix=prefix) File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/req/req_install.py", line 1064, in move_wheel_files isolated=self.isolated, File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/wheel.py", line 345, in move_wheel_files clobber(source, lib_dir, True) File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/wheel.py", line 323, in clobber shutil.copyfile(srcfile, destfile) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 83, in copyfile with open(dst, ''wb'') as fdst: IOError: [Errno 13] Permission denied: ''/Library/Python/2.7/site-packages/six.py''

Cuando corro:

sudo pip install ipython

Obtuve el siguiente error

OSError: [Errno: 1] Operación no permitida: ''/System/Library/Frameworks/Python.framework/Versions/2.7/share''

El último comando ejecutado intenta crear el directorio dado anteriormente.

Además, el siguiente comando no puede instalar iPython sin proporcionar ningún error.

sudo pip install --user python

(Estoy en Mac OS X El Capitan en caso de que otras personas en este sistema operativo vean el mismo problema).



Es difícil hacer que pip trabaje en El Capitán por varias razones:

  1. OS X no establece correctamente algunas variables distutils, por lo que pip intenta instalar archivos auxiliares en ubicaciones en /System/Library/ . El Capitán bloquea esto, que es el error con el que te estás encontrando.
  2. OS X incluye varios paquetes desactualizados en /System/Library/ . pip a menudo quiere actualizar estos pero no puede en El Capitan.
  3. OS X coloca /System/Library/ más alto en el orden de búsqueda de Python que /Library/Python/2.7/site-packages (la ubicación del paquete de Python en todo el sistema), por lo que incluso si logra instalar versiones más nuevas de algunos paquetes, el antiguo todavía se cargan, rompiendo algunas dependencias.

Hay soluciones para todos estos en https://apple.stackexchange.com/a/223163/143849 . Pero es mejor que instales tu propia versión de Python a través del instalador estándar de Python, Homebrew o Anaconda.


Estoy totalmente de acuerdo con Mikko, pero si todavía quieres hacerlo, esta es la forma:

  • Reiniciar en modo de recuperación (Mantener cmd + R)
  • Abrir terminal desde utilidades
  • Utilice el comando csrutil disable

Las instrucciones que le dicen a sudo pip install son inherentemente incorrectas.

Si hay algún tutorial que diga que debe hacer sudo pip , presente un error en este paquete. El autor está deseducando a la comunidad Python, ya que el tiempo ha demostrado que sudo pip es una práctica rota.

OSX El Capitan introdujo un mecanismo para evitar dañar los archivos del sistema operativo . /System/Library/Frameworks/Python.framework/Versions/2.7/share es una de las ubicaciones protegidas. Un usuario normal no tiene ninguna razón para colocar o escribir ningún archivo allí . Esto se debe a que el sistema operativo en sí depende de estos archivos y sudo pip , con toda la fuerza dada por lo anterior, los sobrescribirá incondicionalmente. Por lo general, las cosas malas no sucederían, pero las posibilidades están ahí. Apple quiere proteger a los usuarios de su sistema operativo para bloquear accidentalmente su instalación.

En su lugar, debe instalar un paquete de Python, como IPython, localmente en la carpeta de inicio de su usuario . La forma más fácil es crear un entorno virtual , activarlo y luego ejecutar pip en el entorno virtual.

Ejemplo:

cd ~ # Go to home directory virtualenv my-venv source my-venv/bin/activate pip install IPython

Más información

Alternativamente, uno debería poder hacer pip install --user . Pero, una vez más, no se necesita sudo y debe configurar manualmente la PATH entorno PATH .


Mismo error

$ pip install --user scikit-image h5py keras pygame Collecting scikit-image Downloading http://mirrors.aliyun.com/pypi/packages/65/69/27a1d55ce8f77c8ac757938707105b1070ff4f2ae47d2dc99461bfae4491/scikit_image-0.13.0-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl (28.1MB) 100% |████████████████████████████████| 28.1MB 380kB/s Collecting h5py Downloading http://mirrors.aliyun.com/pypi/packages/b7/cc/1c29b0815b12de2c92b5323cad60f724ac8f0e39d0166d0b9dfacbcb70dd/h5py-2.7.0-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl (4.5MB) 100% |████████████████████████████████| 4.5MB 503kB/s Requirement already satisfied: keras in /Library/Python/2.7/site-packages Requirement already satisfied: pygame in /Library/Python/2.7/site-packages Requirement already satisfied: matplotlib>=1.3.1 in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python (from scikit-image) Requirement already satisfied: six>=1.7.3 in /Library/Python/2.7/site-packages (from scikit-image) Requirement already satisfied: pillow>=2.1.0 in /Library/Python/2.7/site-packages (from scikit-image) Requirement already satisfied: networkx>=1.8 in /Library/Python/2.7/site-packages (from scikit-image) Requirement already satisfied: PyWavelets>=0.4.0 in /Library/Python/2.7/site-packages (from scikit-image) Collecting scipy>=0.17.0 (from scikit-image) Downloading http://mirrors.aliyun.com/pypi/packages/72/eb/d398b9f63ee936575edc62520477d6c2353ed013bacd656bd0c8bc1d0fa7/scipy-0.19.0-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl (16.2MB) 100% |████████████████████████████████| 16.2MB 990kB/s Requirement already satisfied: numpy>=1.7 in /Library/Python/2.7/site-packages (from h5py) Requirement already satisfied: theano in /Library/Python/2.7/site-packages (from keras) Requirement already satisfied: pyyaml in /Library/Python/2.7/site-packages (from keras) Requirement already satisfied: python-dateutil in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python (from matplotlib>=1.3.1->scikit-image) Requirement already satisfied: tornado in /Library/Python/2.7/site-packages (from matplotlib>=1.3.1->scikit-image) Requirement already satisfied: pyparsing>=1.5.6 in /Users/qiuwei/Library/Python/2.7/lib/python/site-packages (from matplotlib>=1.3.1->scikit-image) Requirement already satisfied: nose in /Library/Python/2.7/site-packages (from matplotlib>=1.3.1->scikit-image) Requirement already satisfied: olefile in /Library/Python/2.7/site-packages (from pillow>=2.1.0->scikit-image) Requirement already satisfied: decorator>=3.4.0 in /Library/Python/2.7/site-packages (from networkx>=1.8->scikit-image) Requirement already satisfied: singledispatch in /Library/Python/2.7/site-packages (from tornado->matplotlib>=1.3.1->scikit-image) Requirement already satisfied: certifi in /Library/Python/2.7/site-packages (from tornado->matplotlib>=1.3.1->scikit-image) Requirement already satisfied: backports_abc>=0.4 in /Library/Python/2.7/site-packages (from tornado->matplotlib>=1.3.1->scikit-image) Installing collected packages: scipy, scikit-image, h5py Successfully installed h5py-2.7.0 scikit-image-0.13.0 scipy-0.19.0

y aquí uso --user sin sudo para resolver este problema

brew doctor

¡Espero que ayude a alguien que encuentre un problema similar!


Supongo que tienes algún conflicto con otro paquete. Para mí eran las six . Entonces necesita usar un comando como este:

pip install google-api-python-client --upgrade --ignore-installed six

o

pip install --ignore-installed six


Tengo python2.7 instalado a través de brew y lo siguiente resolvió mi problema

instalar cerveza numpy

Instala python3, pero aún funciona y lo configura para 2.7 también.


Tuve los mismos problemas, pero el uso del easy_install "module" me resolvió el problema.

No estoy seguro de por qué, pero pip y easy_install usan diferentes ubicaciones de instalación, y easy_install eligió las correctas.

Editar: sin volver a verificar pero debido a los comentarios; parece que diferentes instalaciones (OSX e instaladas en brew) interfieren entre sí, por lo que las herramientas mencionadas apuntan a diferentes ubicaciones (ya que pertenecen a diferentes instalaciones). Entiendo que generalmente esas herramientas de un punto de instalación a la misma carpeta.


Tuve los mismos problemas. Como otros han mencionado, no ejecutes pip install con sudo. correr

$ pip install --user jp Collecting jp Downloading jp-0.2.4.tar.gz Installing collected packages: jp Running setup.py install for jp ... done Successfully installed jp-0.2.4 $ python -c ''import jp; print jp'' <module ''jp'' from ''/Users/bbronosky/Library/Python/2.7/lib/python/site-packages/jp/__init__.pyc''> $ find /Users/bbronosky/Library/Python -type f -perm -100 /Users/bbronosky/Library/Python/2.7/bin/jp $ which jp $ echo -e ''/n''''export PATH=$HOME/Library/Python/2.7/bin:$PATH'' >> ~/.bashrc $ bash # starting a new bash process for demo, but you should open a new terminal $ which jp /Users/bbronosky/Library/Python/2.7/bin/jp $ jp usage: jp <expression> <filepath>

y corrija las advertencias y debería poder continuar con la instalación de su pip.


Usé pip3 install <package> lugar y resolvió el problema de permisos con pip .