“OSError: Operación no permitida” al instalar Scrapy en OSX 10.11 (El Capitán) (Protección de integridad del sistema)

Estoy intentando instalar el framework Scrapy Python en OSX 10.11 (El Capitán) a través de pip. El script de instalación descarga los módulos necesarios y, en algún momento, devuelve el siguiente error:

OSError: [Errno 1] Operation not permitted: '/tmp/pip-nIfswi-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/six-1.4.1-py2.7.egg-info' 

He intentado desactivar la función de rootless en OSX 10.11 con el comando:

 sudo nvram boot-args="rootless=0";sudo reboot 

pero sigo recibiendo el mismo error cuando la máquina se reinicia.

¿Alguna pista o idea de mis compañeros StackExchangers?

Si ayuda, la salida completa del script es la siguiente:

 sudo -s pip install scrapy Collecting scrapy Downloading Scrapy-1.0.2-py2-none-any.whl (290kB) 100% |████████████████████████████████| 290kB 345kB/s Requirement already satisfied (use --upgrade to upgrade): cssselect>=0.9 in /Library/Python/2.7/site-packages (from scrapy) Requirement already satisfied (use --upgrade to upgrade): queuelib in /Library/Python/2.7/site-packages (from scrapy) Requirement already satisfied (use --upgrade to upgrade): pyOpenSSL in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python (from scrapy) Collecting w3lib>=1.8.0 (from scrapy) Downloading w3lib-1.12.0-py2.py3-none-any.whl Collecting lxml (from scrapy) Downloading lxml-3.4.4.tar.gz (3.5MB) 100% |████████████████████████████████| 3.5MB 112kB/s Collecting Twisted>=10.0.0 (from scrapy) Downloading Twisted-15.3.0.tar.bz2 (4.4MB) 100% |████████████████████████████████| 4.4MB 94kB/s Collecting six>=1.5.2 (from scrapy) Downloading six-1.9.0-py2.py3-none-any.whl Requirement already satisfied (use --upgrade to upgrade): zope.interface>=3.6.0 in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python (from Twisted>=10.0.0->scrapy) Requirement already satisfied (use --upgrade to upgrade): setuptools in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python (from zope.interface>=3.6.0->Twisted>=10.0.0->scrapy) Installing collected packages: six, w3lib, lxml, Twisted, scrapy Found existing installation: six 1.4.1 DEPRECATION: Uninstalling a distutils installed project (six) has been deprecated and will be removed in a future version. This is due to the fact that uninstalling a distutils project will only partially uninstall the project. Uninstalling six-1.4.1: Exception: Traceback (most recent call last): File "/Library/Python/2.7/site-packages/pip-7.1.0-py2.7.egg/pip/basecommand.py", line 223, in main status = self.run(options, args) File "/Library/Python/2.7/site-packages/pip-7.1.0-py2.7.egg/pip/commands/install.py", line 299, in run root=options.root_path, File "/Library/Python/2.7/site-packages/pip-7.1.0-py2.7.egg/pip/req/req_set.py", line 640, in install requirement.uninstall(auto_confirm=True) File "/Library/Python/2.7/site-packages/pip-7.1.0-py2.7.egg/pip/req/req_install.py", line 726, in uninstall paths_to_remove.remove(auto_confirm) File "/Library/Python/2.7/site-packages/pip-7.1.0-py2.7.egg/pip/req/req_uninstall.py", line 125, in remove renames(path, new_path) File "/Library/Python/2.7/site-packages/pip-7.1.0-py2.7.egg/pip/utils/__init__.py", line 314, in renames shutil.move(old, new) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 302, in move copy2(src, real_dst) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 131, in copy2 copystat(src, dst) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 103, in copystat os.chflags(dst, st.st_flags) OSError: [Errno 1] Operation not permitted: '/tmp/pip-nIfswi-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/six-1.4.1-py2.7.egg-info' 

También creo que no es absolutamente necesario comenzar a hackear OS X.

Pude resolverlo haciendo un

 brew install python 

Parece que el uso de python / pip que viene con el nuevo El Capitán tiene algunos problemas.

 pip install --ignore-installed six 

Haría el truco.

Fuente: github.com/pypa/pip/issues/3165

Como dijeron las otras respuestas, es debido a la nueva Protección de integridad del sistema, pero creo que las otras respuestas son demasiado complicadas.

Si solo va a utilizar ese paquete en el usuario actual, debería poder instalarlo bien, sin la necesidad de deshabilitar el SIP, mediante el uso del indicador --user . Me gusta esto:

 sudo pip install --user packagename 

Las respuestas más votadas no funcionaron para mí, parece funcionar para los usuarios de El Capitán. Pero para los usuarios de MacOS Sierra intente los siguientes pasos

  1. brew install python
  2. sudo pip install --user

Advertencias

Yo sugeriría fuertemente que no se modifique el sistema Python en Mac; Hay numerosos problemas que pueden ocurrir.

Su error particular muestra que el instalador tiene problemas para resolver las dependencias de Scrapy sin afectar la instalación actual de Python. El sistema utiliza Python para una serie de tareas esenciales, por lo que es importante mantener la instalación del sistema estable y como la instaló originalmente Apple.

También agotaría todas las otras posibilidades antes de pasar por alto la seguridad incorporada.

Soluciones de administrador de paquetes:

Por favor, busque en una herramienta de virtualización de Python como virtualenv primero; Esto te permitirá experimentar con seguridad.

Otra herramienta útil para usar idiomas y software sin conflicto con tu Mac OS es Homebrew . Al igual que MacPorts o Fink , Homebrew es un administrador de paquetes para Mac , y es útil para probar de forma segura otros idiomas y herramientas.

“Roll your own” Instalaciones de software:

Si no le gusta el enfoque del administrador de paquetes, puede usar la ruta /usr/local o crear un directorio /opt/local para instalar una instalación alternativa de Python y corregir sus rutas en su .bashrc . Tenga en cuenta que tendrá que habilitar la raíz para estas soluciones.

Como hacerlo de todos modos:

Si absolutamente debe deshabilitar el control de seguridad (y sinceramente espero que sea por algo más que alterar los recursos y los idiomas del sistema), puede deshabilitarlo temporalmente y volver a habilitarlo utilizando algunas de las técnicas de esta publicación sobre cómo deshabilitar el sistema. Integridad-Protección .

Esto hizo el truco para mí:

  sudo pip install scrapy --ignore-installed six 

Debe deshabilitar la “Protección de integridad del sistema”, que es una característica nueva en El Capitán.

Primero, debe ejecutar el comando para la configuración sin root en su terminal

 # nvram boot-args="rootless=0" # reboot 

Luego, debe ejecutar el siguiente comando en el terminal de la partición de recuperación (Sistema operativo de recuperación)

 # csrutil disable # reboot 

Acabo de resolver mi problema de esa manera. No estoy seguro de que la primera parte sea necesaria. Intenta lo que quieras.

–ADVERTENCIA

Debes habilitar SIP nuevamente después de que todo funcione;

Simplemente reinicie de nuevo en modo de recuperación y ejecute en el terminal

 # csrutil enable 

csrutil: Configurando la protección de integridad del sistema

Intenté instalar AWS a través de pip en El Capitán, pero aparece este error

OSError: [Errno 1] Operación no permitida: ‘/var/folders/wm/jhnj0g_s16gb36y8kwvrgm7h0000gp/T/pip-wTnb_D-unons/permas de las partes de la persona / de las partes / de los casos / de los casos / de los casos / de los casos de las personas 1.4.1-py2.7.egg-info ‘

Encontré la respuesta aquí

 sudo -H pip install awscli --upgrade --ignore-installed six 

Esto funciona para mi 🙂

Estaba recibiendo el mismo error en mi MacOS Sierra. Seguí estos pasos y pude instalar con éxito el paquete de Scarpy.

 1. sudo pip install --ignore-installed six 2. sudo pip install --ignore-installed scrapy MacBook-Air:~ shree$ scrapy version Scrapy 1.4.0 

Esto hizo el truco para mí.

instalación de sudo pip – desechado instalado scrapy

Intenté una combinación de algunas respuestas y esto eventualmente funcionó:

sudo -H pip install --upgrade --ignore-installed awsebcli

Aclamaciones

instala python de nuevo:

brew instalar python

Pruébalo otra vez:

sudo pip instalar scrapy

trabaja para mi, espero que pueda ayudar

Reinicie Mac -> mantenga presionado “Comando + R” después del timbre de inicio -> Abre OS X Utilities -> Abrir Terminal y escriba “csrutil disable” -> Reiniciar OS X -> Abrir Terminal y marque “csrutil status”

Este comando funcionaría perfectamente bien: D

sudo -H pip instalar – actualizar nombre_paquete – ignorar-instalado seis

A veces, tal comportamiento puede lograrse si intenta instalar python3 lib en la carpeta python2 usando pip en lugar de pip3.

  1. – cierre SIP (protección de integridad del sistema) – luego reinicie, use el comando + R para ingresar al modo de depuración, luego seleccione terminal: csrutil inhabilitar reiniciar

2.

sudo C_INCLUDE_PATH = / Applications / Xcode.app / Contents / Developer / Platforms / MacOSX.platform / Developer / SDKs / MacOSX10.11.sdk / usr / include / libxml2: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX .platform / Developer / SDKs / MacOSX10.11.sdk / usr / include / libxml2 / libxml: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.jdk/usr/ incluye pip instalar scrapy –también instalado – instalado

3. – luego retire los seis viejos, instálelo nuevamente sudo rm -rf /Library/Python/2.7/site-packages/six* sudo rm -rf /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/ lib / python / six * sudo pip install six

4. – a continuación, vuelva a establecer csrutil habilitar el reinicio

– obras de mierda ahora

funciono para mi

 pip install scrapy --user -U 

Me faltaba una dependencia en algún otro lugar a lo largo de la línea, así que instalé los otros requisitos para el proyecto de esta manera:

 pip install --user -r requirements.txt