Pip не работает: ImportError: Нет модуля с именем 'pip._internal'


63

Запуск pipили pip3результаты с:

Traceback (most recent call last):
File "/home/myuser/.local/bin/pip", line 7, in <module>
from pip._internal import main
ImportError: No module named 'pip._internal'

У меня были проблемы с этим, и я удалил pip3, но когда я пытаюсь установить его снова, используя

sudo apt-get -y install python3-pip

он устанавливает, но затем, запустив pip или pip3, я получаю ту же ошибку.

#which pip3
/home/myuser/.local/bin/pip3

2
У меня похожая проблема после обновления с pip 9.0.2 до pip-10.0.0. Ubuntu 16.04LTS здесь.
Дейв

2
Вы не должны обновить пип 10 на Ubuntu, так как версия системы , установленные через склонный модифицирована таким образом , не совместимые ПГИ 10. См github.com/pypa/pip/issues/5221 @ Dave
Byte Commander

macOS 10.13.4, та же проблема после апгрейда до пипа 10
Бенджамин Р

1
Временное решение:python3 -m pip install --user <package>
Бенджамин Р

1
если у вас есть easy_install(приходит из python-setuptoolsпакета), вы можете сделать sudo easy_install pip(или только sudo easy_install3 pipдля python3 и т. д.)
Марек Себера

Ответы:


115

После обновления pip(или pip3, в данном случае), если происходит следующее:

$ ~ pip3 -V
Traceback (most recent call last):
  File "/usr/local/bin/pip", line 7, in <module>
    from pip._internal import main
ModuleNotFoundError: No module named 'pip._internal'

Принудительно переустановить pip:

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3 get-pip.py --force-reinstall

Проверить установку:

$ ~ pip3 -V
pip 10.0.1 from /usr/local/lib/python3.6/site-packages/pip (python 3.6)

Теперь pip3 install <package>и pip3 install --user <package>(для установок на уровне пользователя) будет работать правильно.

Никогда не должно быть никаких причин для запуска pip в повышенном режиме.

(примечание: для Python 2.7 просто замените pythonна python3и pipдля pip3)

У macOS была такая же проблема, это общая проблема для всех платформ.


1
прекрасно работает и для малины
gtatr

1
Вы, сэр, герой. была эта проблема на Solus, и она работала как шарм.
Cirrusio

1
Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '/usr/bin/pip3'
эндолит

1
@endolith Хорошо, теперь вы хотите использовать sudo rm -rf /usr/bin/pip3- сначала очистите существующий каталог, а затем установите его с нуля. Это проблема с разрешениями в этом каталоге, но в этих обстоятельствах лучше выполнить сброс, я считаю, вы всегда можете легко переустановить все пакеты, которые вы потеряли снова. Если это не сработает, запустите установку Python 3, а затем перезагрузите компьютер.
Бенджамин R

1
@endolith Привет, это зависит от того, какая у вас ОС (и дистрибутив, если Linux). Дайте мне знать, и я постараюсь указать вам правильное направление. PS Мы все были в вашем положении больше раз, чем большинство из нас хотели бы признать :)
Бенджамин R



2

У меня возникла та же проблема, что и у вас, и я обнаружил, что причина в том, что вы работаете без привилегий суперпользователя, поскольку некоторые внутренние пакеты или модули Python устанавливаются с привилегиями суперпользователя.

Таким образом, вы можете попробовать ввести его сначала sudo su, затем ввести пароль и запустить pip install, это может помочь


3
Вы никогда не должны работать pipс повышенными правами доступа. --userВместо этого используйте флаг, как в:pip3 install --user <package>
Бенджамин R

1
Однако, когда я запускаю без разрешения суперпользователя, я все равно получаю такую ​​информацию, как Traceback (последний вызов был последним): файл "/ usr / local / bin / pip3", строка 7, в <module> \\ из pip._internal import main ImportError: Нет модуля с именем «pip._internal». Не могли бы вы помочь мне выяснить, почему это всегда происходит? pip3 install --user
Юк

2
Хорошо, я выяснил, почему, если from pip._internal import mainпроизойдет ошибка, в моем решении: 1) curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py2) python3 get-pip.py --user --force-reinstall, и тогда вы сможете работать pipбез разрешения суперпользователя. Большое спасибо за ваш совет , это очень помогает!
Юк

С удовольствием! Смотри, я узнал трудный путь , чтобы быть осторожным с использованием sudoволей-неволей (разрушила мою ОС несколько раз!)
Benjamin R


2

Примените эти три шага:

  1. Перейти к /usr/local/binтерминалу
  2. казнить sudo gedit pip
  3. Измените from pip._internal import mainв from pip import main.

1

Проверьте, установлен ли pip, используя

pip3 -V 

или же

pip3 --version

Если нет, используйте эту команду для установки:

sudo apt install python3-pip

Теперь вы можете использовать

python3 -m pip install packageName

устанавливать пакеты используя pip.


это то, что ОП уже донг.
Ник О'Лай

0

Пип версия сейчас 19.0.1:

which pip3
#/home/xxx/.local/bin/pip3
vim /home/xxx/.local/bin/pip3

Изменить from pip._internal import mainнаfrom pip import main

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.