Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

151
Views
Error después de actualizar pip: no se puede importar el nombre 'principal'

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.

over 4 years ago · Santiago Trujillo
31 answers
Answer question

0

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 .

over 4 years ago · Santiago Trujillo Report

0

Verifique si pip se ha almacenado en caché en otra ruta, para hacerlo, llame a $ which pip y verifique que la ruta sea diferente a la solicitada en el error, si ese es el caso, ejecute:

 $ hash -r

Cuando el caché esté limpio, pip volverá a funcionar. referencia: http://cheng.logdown.com/posts/2015/06/14/-usr-bin-pip-no-such-file-or-directory

over 4 years ago · Santiago Trujillo Report

0

Uso sudo apt remove python3-pip luego pip funciona.

 ~ sudo pip install pip --upgrade [sudo] password for sen: Traceback (most recent call last): File "/usr/bin/pip", line 9, in <module> from pip import main ImportError: cannot import name 'main' ➜ ~ sudo apt remove python3-pip Reading package lists... Done Building dependency tree Reading state information... Done The following packages were automatically installed and are no longer required: libexpat1-dev libpython3-dev libpython3.5-dev python-pip-whl python3-dev python3-wheel python3.5-dev Use 'sudo apt autoremove' to remove them. The following packages will be REMOVED: python3-pip 0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded. After this operation, 569 kB disk space will be freed. Do you want to continue? [Y/n] y (Reading database ... 215769 files and directories currently installed.) Removing python3-pip (8.1.1-2ubuntu0.4) ... Processing triggers for man-db (2.7.5-1) ... ➜ ~ pip Usage: pip <command> [options]
over 4 years ago · Santiago Trujillo Report

0

Encontré el mismo problema en mi sistema Ubuntu 16.04. Logré solucionarlo reinstalando pip con el siguiente comando:

curl https://bootstrap.pypa.io/get-pip.py | sudo python3

over 4 years ago · Santiago Trujillo Report

0

Me pasó lo mismo en Pixelbook usando el nuevo LXC (strech). Esta solución es muy similar a la aceptada, con una diferencia sutil, que me arregló pip3.

 sudo python3 -m pip install --upgrade pip

Eso superó la versión, y ahora funciona como se esperaba.

Lo encontré aquí... Python.org: asegúrese de que pip esté actualizado

over 4 years ago · Santiago Trujillo Report

0

Recuperar con python3 -m pip install --user pip==9.0.1 (o la versión que funcionó)

over 4 years ago · Santiago Trujillo Report

0

importar principal desde pip._internal

 from pip._internal import main

Edite el código pip de

 sudo nano /usr/bin/pip3
over 4 years ago · Santiago Trujillo Report

0

Podemos borrar el error modificando el archivo pip.

Compruebe la ubicación del archivo:

 $ which pip

ruta -> /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!

over 4 years ago · Santiago Trujillo Report

0

resuelto en un solo paso.

Yo también enfrenté este problema, pero esto se puede resolver simplemente con 1 comando sin molestarse ni perder el tiempo y lo he probado en varios sistemas, es la solución más limpia para este problema. Y eso es:

Para python3: - sudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall .

Con esto, puede simplemente instalar paquetes usando pip3 . para verificar use pip3 --version .

Para versiones anteriores, use: sudo python -m pip uninstall pip && sudo apt install python-pip --reinstall .

Por esto, ahora puede simplemente instalar paquetes usando pip . para verificar use pip --version .

over 4 years ago · Santiago Trujillo Report

0

Tengo el mismo problema y lo resolvi. Aquí está mi solución. Primero, cuando ejecuto pip install algo, el error salió así:

 Traceback (most recent call last): File "/usr/bin/pip3", line 9, in <module> from pip import main ImportError: cannot import name 'main'

Entonces, cd en el archivo /usr/bin/ y cat pip3 para ver el código en él. Veo esto en el:

 #!/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())

Y luego creo que no estaba en la ruta de instalación. Así que cd en python3-pip, así:

 cd /.local/lib/python3.5/site-packages/pip

PD: debe hacer cd en las direcciones correctas en su computadora. Luego, cat el archivo para ver las diferencias (puede usar otras operaciones para ver el código):

 cat __main__.py

Y vi esto:

 from __future__ import absolute_import import os import sys # If we are running from a wheel, add the wheel to sys.path # This allows the usage python pip-*.whl/pip install pip-*.whl if __package__ == '': # __file__ is pip-*.whl/pip/__main__.py # first dirname call strips of '/__main__.py', second strips off '/pip' # Resulting path is the name of the wheel itself # Add that to sys.path so we can import pip path = os.path.dirname(os.path.dirname(__file__)) sys.path.insert(0, path) from pip._internal import main as _main # isort:skip # noqa if __name__ == '__main__': sys.exit(_main())

Entonces, ¿puedes ver la diferencia? Puedo darme cuenta de que tengo que hacer que el archivo sea igual al archivo en /usr/bin/pip3

Entonces, copié el código en /.local/lib/python3.5/site-packages/pip para reemplazar el código en /usr/bin/pip3 y el problema desapareció.

PD: pip3 o pip no tienen diferencia en este problema. ¡Seré feliz si mi solución resuelve su problema!

over 4 years ago · Santiago Trujillo Report

0

Como dijo @cryptoboy: compruebe qué versión de pip/python ha instalado

 demon@UbuntuHP:~$ pip -V demon@UbuntuHP:~$ pip2 -V demon@UbuntuHP:~$ pip3 -V

y luego busque bibliotecas innecesarias en su carpeta .local/lib/.

Hice una copia de seguridad de la configuración cuando estaba migrando a Kubuntu más nuevo y tenía la carpeta .local/lib/python2.7/ en mi directorio de inicio. Python 3.6 instalado. ¡Acabo de quitar la carpeta anterior y ahora todo funciona muy bien!

over 4 years ago · Santiago Trujillo Report

0

Use python -m pip install en lugar de pip install

Ejemplo:

 python -m pip install --user somepackage python3 -m pip install --user somepackage

El ejecutable pip (resp. pip3 ) lo proporciona su distribución (paquete python-pip en Ubuntu 16.04) y se encuentra en /usr/bin/pip .

Por lo tanto, no se mantiene actualizado con el paquete pip en sí mismo a medida que actualiza pip y puede fallar.

Si solo usa python -m pip directamente, por ejemplo, como en:

 python -m pip install --user somepackage python3 -m pip install --user somepackage

pasa por su ruta de Python, encuentra la última versión de pip y ejecuta ese archivo.

Se basa en el hecho de que el archivo es ejecutable a través de la import , pero ese es un tipo de interfaz muy estándar y, por lo tanto, es menos probable que se rompa que el script Debian más pirata.

Entonces recomiendo agregar los siguientes alias a su .bashrc :

 pip() ( python -m pip "$@" ) pip3() ( python3 -m pip "$@" )

El archivo Ubuntu 18.04 /usr/bin/pip3 hace lo siguiente:

 from pip import main

y presumiblemente main se eliminó de pip en algún momento, que es lo que rompió las cosas.

La confirmación pip de ruptura parece ser: 95bcf8c5f6394298035a7332c441868f3b0169f4 "Mover todas las API internas a pip._internal" que entró en pip 18.0.

Probado en Ubuntu 16.04 después de una actualización de pip3 9.0.1 a 18.0.

pyenv

Sin embargo, en última instancia, para un desarrollo serio de Python, solo recomendaría que instale su propio Python local con pyenv + virtualenv, que también evitaría este error de Ubuntu: https://askubuntu.com/questions/682869/how-do-i- instalar-una-versión-diferente-de-python-usando-apt-get/1195153#1195153

over 4 years ago · Santiago Trujillo Report

0

Estoy ejecutando en un sistema donde tengo sudo apt pero no sudo pip. (Y sin su acceso). Me metí en esta misma situación siguiendo el consejo de pip:

Está utilizando la versión 8.1.1 de pip, sin embargo, la 18.0 está disponible. Debería considerar actualizar a través del comando 'pip install --upgrade pip'.

Ninguna de las otras correcciones funcionó para mí, porque no tengo suficientes privilegios de administrador. Sin embargo, algunas cosas se me quedaron grabadas al leer sobre esto:

  • No debería haber hecho esto. Claro, pip me dijo que lo hiciera. Mintió.
  • El uso de --user resuelve muchos problemas al centrarse en el directorio solo para usuarios.

Entonces, encontré que esta línea de comando funcionaba para regresarme a donde estaba. Si estaba usando una versión diferente a la 8.1.1, obviamente querrá cambiar esa parte de la línea.

 python -m pip install --force-reinstall pip==8.1.1 --user

Eso es lo único que funcionó para mí, ¡pero funcionó perfectamente!

over 4 years ago · Santiago Trujillo Report

0

En Debian necesitará actualizar apt primero....

 sudo apt-get update -qq sudo apt-get install python-pip -qq sudo pip install pip --upgrade --quiet sudo pip2 install virtualenv --quiet

Si omite 'sudo apt-get update -qq', su pip se corromperá y mostrará el error 'no se puede encontrar el principal'.

over 4 years ago · Santiago Trujillo Report

0

Tuve el mismo error, pero python -m pip todavía funcionaba, así que lo arreglé con la opción nuclear sudo python -m pip install --upgrade pip . Lo hizo por mí.

over 4 years ago · Santiago Trujillo Report

0

En ubuntu 18.04.1 Bionic Beaver, debe cerrar sesión y volver a iniciar sesión (no es necesario reiniciar) para obtener el entorno adecuado.

 $ sudo apt install python-pip $ pip --version pip 9.0.1 from /usr/lib/python2.7/dist-packages (python 2.7) $ pip install --upgrade pip $ pip --version Traceback (most recent call last): File "/usr/bin/pip", line 9, in <module> from pip import main ImportError: cannot import name main $ exit <login> $ pip --version pip 18.1 from /home/test/.local/lib/python2.7/site-packages/pip (python 2.7)
over 4 years ago · Santiago Trujillo Report

0

Para la versión 2.7 de Python, la solución @Anthony funciona perfectamente, cambiando python3 a python de la siguiente manera:

 sudo python -m pip uninstall pip && sudo apt install python-pip --reinstall
over 4 years ago · Santiago Trujillo Report

0

Puede resolver este problema reinstalando pip.

Use uno de los siguientes comandos de línea de comandos para reinstalar pip:

Python2:

 python -m pip uninstall pip && sudo apt install python-pip --reinstall

Python3:

 python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall
over 4 years ago · Santiago Trujillo Report

0

Truco y funciona también

sudo -H pip instalar lxml

over 4 years ago · Santiago Trujillo Report

0

Lo que funcionó para mí para corregir el error con el uso de pip3 fue:

sudo cp -v /usr/local/bin/pip3 /usr/bin/pip3

Todo funciona:

 demon@UbuntuHP:~$ pip -V pip 10.0.1 from /usr/local/lib/python3.5/dist-packages/pip (python 3.5) demon@UbuntuHP:~$ pip2 -V pip 10.0.1 from /home/demon/.local/lib/python2.7/site-packages/pip (python 2.7) demon@UbuntuHP:~$ pip3 -V pip 10.0.1 from /usr/local/lib/python3.5/dist-packages/pip (python 3.5)

¿Quizás la nueva versión 10.0.1 de pip no actualiza el binario en /usr/bin? (que parece que no)

EDITAR: el mismo problema ocurre en Ubuntu 18.04. La mejor solución que he encontrado es vincular los binarios pip de /home/<user/.local/bin a /usr/local/bin o /usr/bin (según su preferencia), de la siguiente manera:

 ln -sv /home/<user>/.local/bin/pip /usr/local/bin/pip ln -sv /home/<user>/.local/bin/pip2 /usr/local/bin/pip2 ln -sv /home/<user>/.local/bin/pip2.7 /usr/local/bin/pip2.7 ln -sv /home/<user>/.local/bin/pip3 /usr/local/bin/pip3 ln -sv /home/<user>/.local/bin/pip3.6 /usr/local/bin/pip3.6

NOTA: reemplace <user> con su usuario actual en ejecución

Las versiones asociadas (últimas) están en:

Versión 3.6:

/home/demon/.local/lib/python3.6/site-packages/pip (python 3.6)

Versión 2.7:

/home/demon/.local/lib/python2.7/site-packages/pip (python 2.7)

over 4 years ago · Santiago Trujillo Report

0

Los comandos anteriores no funcionaron para mí, pero fueron muy útiles:

 sudo apt purge python3-pip sudo rm -rf '/usr/lib/python3/dist-packages/pip' sudo apt install python3-pip cd cd .local/lib/python3/site-packages sudo rm -rf pip* cd cd .local/lib/python3.5/site-packages sudo rm -rf pip* sudo pip3 install jupyter
over 4 years ago · Santiago Trujillo Report

0

Por lo que vale, tuve el problema con pip (no pip2 o pip3 ):

 $ pip -V Traceback (most recent call last): File "/usr/bin/pip", line 9, in <module> from pip import main ImportError: cannot import name main $ pip2 -V pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7) $ pip3 -V pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)

De alguna manera (no recuerdo cómo) tenía cosas de python instaladas en mi directorio ~/.local . Después de eliminar el directorio pip de allí, pip comenzó a funcionar nuevamente.

 $ rm -rf /home/precor/.local/lib/python2.7/site-packages/pip $ pip -V pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)
over 4 years ago · Santiago Trujillo Report

0

Use el siguiente comando antes de ejecutar cualquier comando pip

 hash -d pip

Funcionará

over 4 years ago · Santiago Trujillo Report

0

Hay algún problema con los paquetes, cuando genera el archivo /usr/bin/pip, debe cambiar la importación:

 from pip import main

para

 from pip._internal import main

Eso resuelve el problema, no estoy seguro de por qué se generó, pero dice algo en el siguiente problema:

Después de la actualización de pip 10 en pyenv "ImportError: no se puede importar el nombre 'main'"

over 4 years ago · Santiago Trujillo Report

0

Este error puede ser un permiso. Entonces, prueba ejecutando el comando con el indicador -H :

 sudo -H pip3 install numpy
over 4 years ago · Santiago Trujillo Report

0

Puedes probar esto:

 sudo ln -sf $( type -P pip ) /usr/bin/pip
over 4 years ago · Santiago Trujillo Report

0

También me encontré con este problema cuando quería actualizar el sistema pip pip3 de 9.0.1 a 19.2.3.

Después de ejecutar pip3 install --upgrade pip , la versión de pip se convierte en 19.2.3. Pero main() se ha movido en pip._internal en la última versión, lo que deja pip3 roto.

Entonces, en el archivo /usr/bin/pip3 , reemplace line 9 : from pip import main con from pip._internal import main . El problema se solucionará, funciona igual para python2-pip . (Probado en la distribución Ubuntu 18.04)

Según la respuesta de @ Vincent H.

over 4 years ago · Santiago Trujillo Report

0

Por favor, ejecute los siguientes comandos para hacer la corrección. Después de ejecutar python3 -m pip install --upgrade pip , ejecute el siguiente comando.

 hash -r pip

Fuente: https://github.com/pypa/pip/issues/5221

over 4 years ago · Santiago Trujillo Report

0

simplemente puede arreglar las rutas pip y pip3 usando update-alternatives

Lo primero que debe verificar es su $PATH actual, ejecutar echo $PATH y ver si puede encontrar /usr/local/bin que es donde normalmente están pip3 y pip.

hay un cambio que su sistema está buscando aquí /bin/pip y /bin/pip3 así que le diré que corrija la RUTA agregando a su archivo ~/.bash_profile para que persista

export PATH=$PATH:/usr/local/bin y luego verifique si está arreglado con which pip y which pip3

si no, entonces use update-alternatives para arreglarlo finalmente

 update-alternatives --install /bin/pip3 pip3 /usr/local/bin/pip3 30

y si quieres apuntar pip a pip3 entonces

 update-alternatives --install /bin/pip pip /usr/local/bin/pip3 30
over 4 years ago · Santiago Trujillo Report

0

¡Esto funcionó para mí!

 hash -r pip # or hash -d pip

Ahora, desinstale la versión instalada de pip y vuelva a instalarla usando los siguientes comandos.

 python -m pip uninstall pip # sudo sudo apt install --reinstall python-pip

Si el pip está roto, use:

 python -m pip install --force-reinstall pip

¡Espero eso ayude!

over 4 years ago · Santiago Trujillo Report

0

Usé el siguiente código para cargar un módulo que podría necesitar instalación, evitando así este error (que también obtuve), usando la última versión de Python y la última pip sin ningún problema.

 try from colorama import Fore, Back, Style except: !pip install colorama from colorama import Fore, Back, Style
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!