pip desapareció por alguna razón

2

pip estaba bien, pero hoy cuando intenté usarlo, recibí este mensaje:

-bash: pip: command not found

Eso es raro. brewmuestra que el pythonpaquete de brewtodavía está instalado, pero ahora al escribir pythonen la terminal se ejecutará el predeterminado en el sistema:

~: brew install python
Warning: python 2.7.13_1 is already installed

~: python
Python 2.7.10 (default, Feb  7 2017, 00:08:15) 

Intentar importar los paquetes que tenía no funcionó tan bien:

~: python
>>> import cv2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named cv2
>>> import PIL
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named PIL

Si entro /usr/local/lib/python2.7/site-packages/, todo parece estar bien. Curiosamente también funciona si escribo

~: pip2 -V
pip 9.0.1 from /usr/local/lib/python2.7/site-packages (python 2.7)
~: python2
Python 2.7.13 (default, Jul 18 2017, 09:17:00) 
>>> import cv2
>>>

¿Qué puedo hacer para recuperar pip(y mis paquetes)?

Derek 朕 會 功夫
fuente
Python 2.7.10 es el Python del sistema ( ~: python), python 2.7.13 es el Python instalado con brew!
klanomath
@klanomath Sí, lo sé. No sé lo que sucedió, pero solía poder iniciar la pitón de brew simplemente escribiendo pythonen la terminal.
Derek 朕 會 功夫
¿Qué obtienes si escribes 'which pip'?
jmh
@john Un código de retorno 1.
Derek 朕 會 功夫

Respuestas:

1

Después de leer la discusión sobre por qué se produjo este cambio de Homebrew y algunos de los problemas relacionados, me parece que vincularlo a "pip" y "python" como lo hizo en su respuesta podría confundir las cosas en el futuro. En su lugar he seguido las sugerencias en estos dos RP GH (y se confirma como la solución correcta aquí ).

Edite ~ / .bashrc para contener:

export PATH="/usr/local/opt/python/libexec/bin:$PATH"

Estoy usando virtualenvwrapper y también necesitaba editar ~ / .bash_profile para contener una línea similar:

export VIRTUALENVWRAPPER_PYTHON=/usr/local/opt/python/libexec/bin/python
Micromégas
fuente
Tuve que agregarlo ~/.bash_profileporque bash no se usa ~/.bashrcpor la razón que sea.
Derek 朕 會 功夫
1

Estoy bastante seguro de que la razón por la que estos enlaces simbólicos cambiaron se debió a las actualizaciones de homebrew anunciadas en la versión 1.3.0:

"El cambio más significativo desde 1.2.0 es que brew install python ya no instala un binario de python sin adiciones manuales de PATH y en su lugar instala un binario de python2. Esto evita anular el binario de python del sistema de forma predeterminada al instalar Python como una dependencia. También pavimenta la forma de tener eventualmente Python es Python 3.x. "

Micromégas
fuente
Profundizar en ello un poco más profundo da como resultado esta discusión github.com/Homebrew/homebrew-core/pull/14408
Micromégas
0

Lo resolví agregando manualmente los enlaces simbólicos:

cd /usr/local/bin
ln -s python2 python
ln -s pip2 pip

Sin embargo, todavía no sé por qué desaparecieron en primer lugar.

Derek 朕 會 功夫
fuente