pip desapareció por alguna razón

pipestaba bien, pero hoy cuando traté de usarlo, recibí este mensaje:

-bash: pip: command not found

Eso es raro. brewmuestra que el pythonpaquete brewaún 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 piprecuperar (y mis paquetes)?

Python 2.7.10 es el Python del sistema ( ~: python), python 2.7.13 es el Python instalado con brew.
@klanomath Sí, lo sé. No sé qué sucedió, pero solía poder iniciar python de brew simplemente escribiendo pythonen la terminal.
¿Qué obtienes si escribes 'cuál pip'?
@john Un código de retorno 1.

Respuestas (3)

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

Edite ~/.bashrc para que contenga:

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

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

export VIRTUALENVWRAPPER_PYTHON=/usr/local/opt/python/libexec/bin/python
Tuve que agregarlo ~/.bash_profileporque bash no se usa ~/.bashrcpor el motivo que sea.

Estoy bastante seguro de que la razón por la que cambiaron estos enlaces simbólicos 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 allana la forma de que Python sea eventualmente Python 3.x".

Profundizando un poco más, aparece esta discusión github.com/Homebrew/homebrew-core/pull/14408

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.