sierra puedo pro macbook mac high descargar actualizar actualizacion macos python-2.7 setuptools

macos - puedo - Actualización de herramientas de configuración en OSX El Capitan



mac os high sierra (3)

Visión de conjunto

El problema son las bibliotecas de Python en conflicto, combinadas con la Protección de integridad del sistema (SIP) en Mac OS que protege las bibliotecas de Python del sistema.

En mi opinión, la mejor solución es desinstalar y reinstalar su propia instalación de Python y mantenerla separada de las bibliotecas de Python proporcionadas por Mac OS que están protegidas por SIP.

Estoy a favor de deshabilitar SIP, ya que espero que SIP sea parte de futuras versiones de Mac OS y SIP no es la causa aquí, solo expone el problema de las bibliotecas de Python en conflicto.

Detalles

También tuve este problema al intentar instalar ansible.

Mi problema comenzó cuando seguí las instrucciones de instalación ansible para Mac OS, que es instalar a través de pip e instalar pip con easy_install como se describe en Últimas versiones a través de Pip

El problema es al instalar pip de esta manera, easy_install es la instalación easy_install Mac OS en /usr/bin/easy_install pero escribe en el archivo easy-install.pth en /Library/Python/2.7/site-packages/easy-install.pth y ese archivo hace referencia a las bibliotecas Python proporcionadas por Mac OS.

Posteriormente, la instalación de ansible con pip install ansible informa que la biblioteca Python proporcionada por Mac OS cumple con el requisito de instalación de /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python en /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python
Ansible requiere herramientas de configuración pero no especifica una versión. Otro paquete dependiente, paramiko, requiere setuptools> = 11.3, pero parece que esto no se verifica al instalar ansible a través de pip. Cuando intenta ejecutar ansible, aunque se queja de que las herramientas de configuración son 1.1.6. Esta es la versión de las herramientas de configuración proporcionadas con Mac OS, y ahora está protegida por SIP, por lo que no se puede actualizar.

En lugar de deshabilitar SIP, arreglé esto desinstalando mi Python local como se indica en https://docs.python.org/2.7/using/mac.html#getting-and-installing-macpython y luego descargué e instalé nuevamente.

Si está preocupado por el rm, puede mv en su lugar
Para desinstalar lo hice

sudo rm -rf /Library/Python sudo rm -rf /Applications/Python/ 2.7/ sudo rm /usr/local/bin/ansible # executable sudo rm /usr/local/bin/python* # symlinks to /Library/Python/2.7 sudo rm /usr/local/bin/easy_install* # and so on for references to /Library/Python/2.7 in /usr/local/bin

Luego descargué el paquete de instalación 2.7.13 para Mac OS X desde https://www.python.org/downloads/ y lo instalé.

Esto instaló un python local y pip en /Library/Frameworks/Python.framework/Versions/2.7 y enlaces simbólicos en /usr/local/bin , así como anteponer /Library/Frameworks/Python.framework/Versions/2.7 a mi $ PATH. Esto mantiene todo separado de las bibliotecas proporcionadas por Mac OS en /System/Library/Frameworks/Python.framework y /usr/bin para que obtenga

which pip /Library/Frameworks/Python.framework/Versions/2.7/bin/pip

Luego instalé ansible con pip install ansible
Luego, cuando corro, which ansible me sale

/Library/Frameworks/Python.framework/Versions/2.7/bin/ansible

y en pip list

setuptools (28.8.0) six (1.10.0)

y ansible ahora funciona para mí porque la nueva instalación no hace referencia a las bibliotecas de Mac OS Python.

Tenga en cuenta que debido a la configuración del instalador $ PATH, which python ahora es /Library/Frameworks/Python.framework/Versions/2.7/bin/python y /usr/local/bin/python es un enlace simbólico a esto.
Si desea el sistema Python, deberá usar / usr / bin / python o cambiar el $ PATH

Estoy tratando de actualizar setuptools. Bueno, en realidad estoy tratando de actualizar ansible, pero está tratando de actualizar las herramientas de configuración y falla. Intentar hacerlo yo mismo también falla. Incluso intentar desinstalarlo falla

$ sudo -H pip install --upgrade setuptools Collecting setuptools Using cached setuptools-18.4-py2.py3-none-any.whl Installing collected packages: setuptools Found existing installation: setuptools 1.1.6 Uninstalling setuptools-1.1.6: Exception: Traceback (most recent call last): File "/Library/Python/2.7/site-packages/pip-7.1.2-py2.7.egg/pip/basecommand.py", line 211, in main status = self.run(options, args) File "/Library/Python/2.7/site-packages/pip-7.1.2-py2.7.egg/pip/commands/install.py", line 311, in run root=options.root_path, File "/Library/Python/2.7/site-packages/pip-7.1.2-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.2-py2.7.egg/pip/req/req_install.py", line 716, in uninstall paths_to_remove.remove(auto_confirm) File "/Library/Python/2.7/site-packages/pip-7.1.2-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.2-py2.7.egg/pip/utils/__init__.py", line 315, in renames shutil.move(old, new) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 299, in move copytree(src, real_dst, symlinks=True) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 208, in copytree raise Error, errors Error: [(''/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib/__init__.py'', ''/tmp/pip-OyTXsR-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib/__init__.py'', "[Errno 1] Operation not permitted: ''/tmp/pip-OyTXsR-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib/__init__.py''"), (''/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib/__init__.pyc'', ''/tmp/pip-OyTXsR-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib/__init__.pyc'', "[Errno 1] Operation not permitted: ''/tmp/pip-OyTXsR-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib/__init__.pyc''"), (''/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib/markers.py'', ''/tmp/pip-OyTXsR-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib/markers.py'', "[Errno 1] Operation not permitted: ''/tmp/pip-OyTXsR-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib/markers.py''"), (''/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib/markers.pyc'', ''/tmp/pip-OyTXsR-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib/markers.pyc'', "[Errno 1] Operation not permitted: ''/tmp/pip-OyTXsR-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib/markers.pyc''"), (''/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib'', ''/tmp/pip-OyTXsR-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib'', "[Errno 1] Operation not permitted: ''/tmp/pip-OyTXsR-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib''")]

No tengo la menor idea de lo que está mal. Mirando todos los archivos en /System/Library/Frameworks/Python.framework/Versions/2.7/ y debajo cada archivo es propiedad de root:wheel

¿Cómo puedo arreglarlo?


Esto sucede debido a la Protección de integridad del sistema introducida en OS X El Capitan.

Agregar --user python al comando permitió que esto funcionara.

En otras palabras

pip install --upgrade setuptools --user python


La respuesta es que no puede actualizar las herramientas de configuración en OSX para el python de fábrica que se incluye con el sistema operativo. La razón es que los archivos en /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python no pueden ser eliminados o modificados por el usuario. No solo el usuario normal, sino que incluso si tiene permisos de root, no podrá modificar esos archivos.

Claro que puede usar otros métodos para instalar una versión más reciente de setuptools, pero esto no anulará el paquete predeterminado del sistema. Es decir, si sigue la ruta sugerida de uso del --user python , o elige instalarlos sin root en ~/Library , estos no anularán la versión de los archivos del sistema.

La razón por la que usted o el usuario no pueden modificar los valores predeterminados del sistema se debe a las restricciones de permisos SIP en El Capitan +. Puede deshabilitar SIP, pero esto generalmente no se recomienda.

En cambio, la única solución razonable es usar un python virtualenv.