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. brew muestra que el paquete python de brew todavía está instalado pero al escribir python en el 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 funcionaron 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 en /usr/local/lib/python2.7/site-packages/ , todo parece estar bien. Extrañamente 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)?

    
pregunta Derek 朕會功夫 29.07.2017 - 01:47

3 respuestas

1

Después de leer la discusión sobre por qué se produjo 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 lugar de eso, seguí las sugerencias de estas two GH PRs (y se confirma como la solución correcta here ).

Edita ~ / .bashrc para que contenga:

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

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

export VIRTUALENVWRAPPER_PYTHON=/usr/local/opt/python/libexec/bin/python
    
respondido por el Micromégas 01.08.2017 - 21:42
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 la versión 1.2.0 es que brew install python   ya no instala un binario de python sin adiciones de PATH manuales y   en su lugar instala un binario python2. Esto evita anular el sistema   binario de Python de forma predeterminada al instalar Python como una dependencia. Eso   también allana el camino para que Python sea Python 3.x. "

    
respondido por el Micromégas 01.08.2017 - 19:16
0

Lo resolví agregando manualmente los enlaces simbólicos de nuevo:

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

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

    
respondido por el Derek 朕會功夫 31.07.2017 - 06:33

Lea otras preguntas en las etiquetas