<p>pip ImportError: no se puede importar el nombre 'principal' después de la actualización</p>

Creado en 28 may. 2018  ·  18Comentarios  ·  Fuente: pypa/pip

Nota del mantenedor: Cualquiera que todavía tenga este problema, consulte el n. ° 5599.


Medio ambiente

  • versión pip: ???
  • Versión de Python: 3.5.2
  • SO: Linux sas-linuxmint 4.4.0-92-generic # 115-Ubuntu SMP Thu Aug 10 09:04:33 UTC 2017 x86_64 x86_64 x86_64 GNU / Linux
sas@sas-linuxmint /usr/bin $ pip3 install --user --upgrade pip
Collecting pip
  Using cached https://files.pythonhosted.org/packages/0f/74/ecd13431bcc456ed390b44c8a6e917c1820365cbebcb6a8974d1cd045ab4/pip-10.0.1-py2.py3-none-any.whl
Installing collected packages: pip
Successfully installed pip-8.1.1
You are using pip version 8.1.1, however version 10.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
ImportError: cannot import name 'main'
sas@sas-linuxmint /usr/bin $ pip3 install --upgrade pip
Traceback (most recent call last):
  File "/usr/bin/pip3", line 9, in <module>
    from pip import main
ImportError: cannot import name 'main'
duplicate

Comentario más útil

hash -d pip
trabajó para mi

Todos 18 comentarios

Mismo problema

mismo problema

Es lo mismo que el # 5221.

@pradyunsg ¿Por qué marca esto como un duplicado de un problema cerrado? Claramente no está cerrado si todavía es un problema ...

En este caso, el problema particular parece ser:

  1. pip3 install --user --upgrade pip instala pip 10 en el sitio del usuario, pero no desinstala la copia del sitio del sistema de pip.
  2. El usuario ejecuta el contenedor del sistema desde /usr/bin/pip3 que es del pip 8 proporcionado por el sistema operativo. Este contenedor espera ver el pip 8, pero no lo hace porque el sitio del usuario tiene prioridad sobre el sitio del sistema.

La solución es usar la envoltura pip instalada cuando instaló pip 10 en --user . Eso significará cambiar su PATH para poner eso primero, o usar una ruta explícita cuando invoque pip.

Técnicamente, el problema aquí es ligeramente diferente del # 5221, ya que en ese problema los usuarios estaban sobrescribiendo el pip del sistema. Pero la causa raíz es la misma: usar una envoltura de pip más antigua (proporcionada por el sistema operativo) contra una versión más nueva de pip. Ese no es un escenario compatible y no puede encontrarlo con el uso correcto de pip. Entonces, no hay problema de pip, por lo tanto, cerramos los problemas cuando surgen. Estamos dirigiendo a los usuarios al # 5221 porque ahí es donde se encuentra la mayor parte de los consejos sobre cómo ordenar su sistema después de una actualización incorrecta.

https://github.com/pypa/pip/issues/5221#issuecomment -381568428 es lo que funcionó para mí

thang @ cq-gpu : / mnt / tmp / tqdscripts / azure / nvtf $ pip3 install --user --upgrade pip
Rastreo (llamadas recientes más última):
Archivo "/ usr / bin / pip3", línea 9, en
desde pip import main
ImportError: no se puede importar el nombre 'principal'

Esto no hace nada por mí. Sigue siendo el mismo problema.

Por favor, eche un vistazo al número 5599 y los problemas vinculados allí.

hash -d pip
trabajó para mi

desinstalé y reinstalé pip. parece funcionar.

Tuve el mismo problema, pero desinstalar y reinstalar con apt y pip no funcionó para mí.

Vi otra solución en stackoverflow que presenta una manera fácil de recuperar la ruta pip3:

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

¡Hola amigos! Tengo el mismo problema y lo solucioné. 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, escribo en el archivo / usr / bin / y cat pip3 para ver el código en él. Veo esto en él:

`#!/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 el python3-pip, así:

cd /.local/lib/python3.5/site-packages/pip
ps: tienes que hacer cd en las direcciones correctas en tu computadora
Luego busco 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 el mismo que el 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 desaparece!

ps: pip3 o pip no tienen ninguna diferencia en este problema.
¡Estaré feliz si mi solución resuelve tu problema!

Utilice pip3: +1:

deberías intentar usar
python3 -m pip install --user "nombre de paquete"

@linpanusst es correcto

sudo ln -sf $( type -P pip ) /usr/bin/pip

El mismo problema persiste aquí. Sistema operativo Deepin, 15.7. Lo interesante es que, como usuario habitual, falla, pero parece funcionar bien con sudo:

$ pip3 search audioshare
Traceback (most recent call last):
  File "/usr/bin/pip3", line 9, in <module>
    from pip import main
ImportError: cannot import name 'main'
$ sudo pip3 search librosa
librosa (0.6.2)  - Python module for audio and music processing

La solución alternativa sugerida sudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall no hizo ninguna diferencia.

Una solución publicada en stackoverflow sugiere editar /usr/bin/pip3 ayuda al usuario normal, pero rompe sudo :

$ sudo pip3 search librosa
Traceback (most recent call last):
  File "/usr/bin/pip3", line 13, in <module>
    sys.exit(__main__._main())
AttributeError: module 'pip.__main__' has no attribute '_main'

Por favor, eche un vistazo al número 5599 y los problemas vinculados allí.

¿Fue útil esta página
0 / 5 - 0 calificaciones