OSError: Operación no permitida:

Estoy enfrentando una seria resistencia con pandas y específicamente con numpy . Cuando bash ejecutar mi progtwig Python actual, recibo el siguiente mensaje:

 ImportError: this version of pandas is incompatible with numpy = 1.9.0 to use this pandas version 

Intenté actualizar numpy con:

 pip install --upgrade --force-reinstall numpy 

Pero luego recibo el siguiente error:

 OSError: [Errno 1] Operation not permitted: '/var/folders/jh/xdhjqn1x3f32tt0s0yqyh0dm0000gn/T/pip-mqbUP3- uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy-1.8.0rc1-py2.7.egg-info' 

Basado en lo que he visto y leído en línea, realmente no estoy seguro de cuál es el problema.

Related of "OSError: Operación no permitida:"

Supongo que está en macOS (de lo contrario, la marca –user, o la ejecución con sudo , debería resolver el problema).

Es probable que el problema esté intentando actualizar el mismo Python que utiliza macOS para sus operaciones internas. A Mac le preocupa que los usuarios ignorantes eliminen Python y desestabilicen su sistema operativo, por lo que colocan /usr/bin/python en un directorio de “rueda” que no podrá tocar (incluso con sudo).

Para confirmar que este es el problema, intente esto:

  1. Abre el terminal y escribe which Python . Probablemente obtendrá algo como /usr/bin/python .
  2. Escriba ls -l /usr/bin/python , donde usará la ruta del paso 1. La salida se verá como -rwxr-xr-x 1 root wheel 66880 Sep 21 00:35 /usr/bin/python

¿Ves como dice “rueda”? Wheel es un grupo superprotegido que no puedes tocar, incluso con sudo.

Para solucionar esto, una opción es instalar una nueva copia de Python en otro lugar. Personalmente, odio tener varias copias del mismo software, así que lo forzaré a que se actualice de esta manera:

  1. Reinicie la computadora en modo de recuperación
  2. Encuentra el terminal y escribe csrutil disable
  3. Reinicie normalmente, luego actualice numpy con pip2 `install –user –upgrade numpy
  4. Repita los pasos ayb, esta vez cambiando “deshabilitar” por “habilitar”

Nota: “csrutil disable” es un negocio serio que puede desestabilizar su máquina, lo usaría solo cuando fuera absolutamente necesario y lo reactivaría lo antes posible. Pero AFAIK es la única forma de actualizar paquetes de Python en un directorio de ruedas.