Cada vez que intento instalar cualquier paquete usando pip, recibo 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())Estaba funcionando bien antes, no estoy seguro de por qué arroja este error. He buscado acerca de este error, pero no puedo encontrar nada para solucionarlo.
Por favor, hágamelo saber si necesita más detalles, actualizaré mi pregunta.
Debe haber actualizado inadvertidamente su sistema pip (probablemente a través de algo como sudo pip install pip --upgrade )
pip 10.x ajusta dónde se encuentran sus componentes internos. El comando pip3 que está viendo es proporcionado por el mantenedor de su paquete (¿presumiblemente basado en Debian aquí?) Y no es un archivo administrado por pip.
Puede leer más sobre esto en el rastreador de problemas de pip
Probablemente no desee actualizar su pip del sistema y, en su lugar, usar un virtualenv.
Para recuperar el binario pip3 , deberá sudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall .
Si desea continuar en "territorio no admitido" (actualizar un paquete del sistema fuera del administrador de paquetes del sistema), probablemente pueda salirse con la suya con python3 -m pip ... en lugar de pip3 .
Podemos borrar el error modificando el archivo pip.
Compruebe la ubicación del archivo:
$ which pipruta -> /usr/bin/pip
Vaya a esa ubicación ( /usr/bin/pip ) y abra la terminal
Introduzca: $ sudo nano pip
Puedes ver:
import sys from pip import main if __name__ == '__main__': sys.exit(main())Cambiar a:
import sys from pip import __main__ if __name__ == '__main__': sys.exit(__main__._main())luego ctrl + o escribir los cambios y salir
¡Espero que esto sirva!