Error después de actualizar pip: no se puede importar el nombre 'main'
Cada vez que trato de instalar cualquier paquete usando pip, estoy recibiendo este error de importación:
guru@guru-notebook:~$ pip3 install numpy
Traceback (most recent call last):
File "/usr/bin/pip3", line 9, in <module>
from pip import main
ImportError: cannot import name 'main'
..;
guru@guru-notebook:~$ cat `which pip3`
#!/usr/bin/python3
# GENERATED BY DEBIAN
import sys
# Run the main entry point, similarly to how setuptools does it, but because
# we didn't install the actual entry point from setup.py, don't use the
# pkg_resources API.
from pip import main
if __name__ == '__main__':
sys.exit(main())
Antes funcionaba bien, no estoy seguro de por qué da este error. He buscado sobre este error, pero no puedo encontrar nada para solucionarlo.
Por favor, hágamelo saber si necesita más detalles, voy a actualizar mi pregunta.
443
3
Usted debe haber actualizado inadvertidamente su sistema pip (probablemente a través de algo como
sudo pip install pip --upgrade
)pip 10.x ajusta la ubicación de sus componentes internos. El comando
pip3
que está viendo es uno proporcionado por su mantenedor de paquetes (presumiblemente basado en debian aquí?) y no es un archivo gestionado por pip.Puede leer más sobre esto en pip's issue tracker
Probablemente querrá no actualizar su sistema pip y en su lugar utilizar un virtualenv.
Para recuperar el binario
pip3
tendrá quesudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall
.Si quiere continuar en "territorio no soportado" (actualizar un paquete del sistema fuera del gestor de paquetes del sistema), probablemente puede salirse con la suya con
python3 -m pip ...
en lugar depip3
.Compruebe si pip se ha almacenado en caché en otra ruta, para ello, llame a $ which pip y compruebe que la ruta es diferente a la que se indica en el error, si ese es el caso ejecute:
Cuando la caché esté limpia, pip volverá a funcionar. referencia: http://cheng.logdown.com/posts/2015/06/14/-usr-bin-pip-no-such-file-or-directory
Yo uso
sudo apt remove python3-pip
y luegopip
funciona.