Instalación del cliente nova: Permiso PIP denegado incluso como root

Estoy tratando de instalar el cliente nova en OS X 10.12.3

Traté de instalar con sudo pip install python-novaclient.

Quiero acceder al servidor openstack desde OS X

Installing collected packages: requests, six, PrettyTable, Babel, oslo.i18n, iso8601, funcsigs, pyparsing, monotonic, netifaces, netaddr, wrapt, debtcollector, oslo.utils, simplejson, msgpack-python, oslo.serialization, positional, stevedore, keystoneauth1, python-novaclient
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 316, in clobber
    ensure_dir(destdir)
  File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/utils/__init__.py", line 83, in ensure_dir
    os.makedirs(path)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/os.py", line 157, in makedirs
    mkdir(name, mode)
OSError: [Errno 13] Permission denied: '/Library/Python/2.7/site-packages/requests'
Es interesante que diga "Permiso denegado" incluso cuando se ejecuta como superusuario. Solo para estar seguro, ¿puedes correr ls -l /Library/Python/2.7/y decirme qué informa? Definitivamente hay algo divertido con los permisos aquí, pero no estoy seguro de qué.

Respuestas (1)

Según esta respuesta de StackOverflow , sudo pip installes una práctica bastante insegura en el sentido de que intenta/permite/pretende modificar las bibliotecas de Python del sistema. En este caso específico, el comando falla porque un script de instalación intenta modificar el /System/Library/Frameworks/Python.frameworkdirectorio, que a partir de macOS 10.11 está protegido por la Protección de integridad del sistema . Intenta usar un entorno virtual .

Virtualenv hizo el truco, todo funciona ahora sin problemas y solo usé nova y neutron sin problemas.