No se puede actualizar el paquete python six en mac osx 10.10.2
macos pip (10)
Estoy tratando de instalar la última versión del paquete de seis python, pero tengo los siguientes problemas. No puede deshacerse de seis 1.4.1 en mac OSX 10.10.2
sudo pip install six --upgrade
Requirement already up-to-date: six in /Library/Python/2.7/site-packages
Cleaning up...
pip search six
six - Python 2 and 3 compatibility utilities
INSTALLED: 1.9.0 (latest)
python -c "import six; print six.version"
1.4.1
which -a python
/usr/bin/python
which -a pip
/usr/local/bin/pip
¿Que esta mal aquí? No se puede actualizar seis!
Al final, el problema para mí fue que estaba usando el shell IPython.
which ipython
devolvió /usr/local/bin/ipython
y luego de la inspección, este archivo se declaró en la parte superior #!/usr/bin/python
, que parecía estar evitando todos mis esfuerzos para usar la ubicación de python correcta.
Simplemente cambiando esta línea #!/usr/local/bin/python
para que apunte a la versión correcta de python, significaba que IPython usó el módulo six
correcto.
El Python predeterminado de Mac OS X se instala como un marco. Bajo el directorio marco, hay un directorio ''Extras'' y six
paquetes ya están colocados allí.
/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/six.py
De acuerdo con la descripción ( https://github.com/MacPython/wiki/wiki/Which-Python ), /System/Library/Frameworks/Python.framework/Versions/2.7/Extras
aparece antes /Library/Python/2.7/site-packages
en la ruta de búsqueda del módulo. Esto significa que todos los paquetes ya existen en /System/Library/Frameworks/Python.framework/Versions/2.7/Extras
no se pueden actualizar.
Tal vez debería instalar python manualmente y no usar python predeterminado.
Encontré este problema exacto al usar pip para instalar el cliente de openstack. Mi solución fue utilizar easy_install en lugar de pip, ya que utiliza /Library/Python/2.7/site-packages/
para la instalación del módulo en lugar de /System/Library/Frameworks/Python.framework/Versions/2.7/Extras
. Si esta solución no es una opción para usted, entonces puedo confirmar que @Masakazu Matsushita tiene la solución correcta para configurar PYTHONPATH
en /Library/Python/2.7/site-packages
. Para implementar esa solución, agregue esta línea:
export PYTHON_PATH=/Library/Python/2.7/site-packages
a su ~/.bashrc
y ~/.profile
(si se trata de una aplicación Python GUI que está intentando instalar).
Lo que funcionó para mí fue usar easy_install
lugar de pip
.
easy_install -U six
Easy_install logró actualizar el paquete incluso cuando falló el pip.
Probar con pip2 su trabajo pip2 instalar -U seis
Resolví el problema por el siguiente método.
- Descarga el paquete six-1.10.0.tar.gz
- Utilice este comando para instalarlo.
python setup.py install
Esto funciona porque instala la nueva versión de seis en /Library/Python/2.7/site-packages/ que se busca antes de /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/
Si bien una u otra de las soluciones anteriores puede funcionar para usted, creo que es importante entender qué está pasando y cuáles son las opciones que tiene. Encontré this descripción (bastante extensa) para ser muy útil: comienza con una descripción de las opciones y solo entonces sugiere soluciones.
Su binario pip
pertenece a /usr/local/bin/python
, mientras que python
apunta a /usr/bin/python
. Como consecuencia
pip install --upgrade six
se instalará en /usr/local/bin/python
.
El siguiente comando se asegurará de que se use la versión correcta de pip:
python -m pip install --upgrade six
Prueba estos pasos
Reinstalar Python usando cerveza
$ brew install python
Resolver problema de enlace simbólico faltante
$ brew link --overwrite python
Reinicie el sistema o ejecute
$ hash -r python