Nota del mantenedor: Cualquiera que todavía tenga este problema, consulte el n. ° 5599.
Medio ambiente
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'
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 ...
@sydanny : https://github.com/pypa/pip/issues/5221#issuecomment -382069604
En este caso, el problema particular parece ser:
pip3 install --user --upgrade pip
instala pip 10 en el sitio del usuario, pero no desinstala la copia del sitio del sistema de pip./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í.
Comentario más útil
hash -d pip
trabajó para mi