pip: нет модуля с именем _internal


100

У меня проблема, когда я пытаюсь каким-либо образом использовать pip. Я использую Ubuntu 16.04.4

Я должен сказать, что я уже использовал его, и у меня никогда не было проблем, но начиная с сегодняшнего дня, когда я использую любую команду, я всегда получаю ту же ошибку (в качестве примера использования pip --upgrade).

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

Я пробовал делать sudo apt-get remove python-pip, sudo apt-get install python-pipно ничего не изменилось.


Убедитесь в том, что /usr/local/lib/pythonX.X/site-packagesпредшествует /usr/lib/pythonX.X/site-packagesв вашей $PATH.
Hoefling

Здесь та же проблема. Вы нашли решение?
WayBehind

3
@WayBehind Я нашел решение. Я заметил, что python -m pipвсе работает нормально. Кроме того, я удалил файл /usr/local/bin/pip, теперь вызывая pip -Vreturn pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7). Вроде все работает как положено.
Grimdrem

У меня все еще та же проблема, я использую pip в среде conda, python 2.7, и я использую pip install ipdb. Есть идеи по этому поводу?
Гарвита Тивари

1
Выполнил шаги плюс флаг -H:sudo -H python3.7 get-pip.py --force-reinstall
Andres Leon Rangel

Ответы:


118

Это сделало это для меня:

python -m pip install --upgrade pip

Среда: OSX && Python установлен через brew


6
Спасибо, это было решение для меня, использующего python3.
Furbeenator

2
это не сработало для меня. То, что сделал @Grimdrem, в итоге и сделал я. У меня был (в прошлом) установленный pip для всех (используя sudo или что-то в этом роде) ... и мое обновление было с --user, поэтому другая установка все еще висела ... удаление его из / usr / local / bin и из моего основная папка пакета python (не --user's) сделала свое дело.
user1269942

Как ни странно, здесь это тоже исправлено. Я должен был обновить #searx до последней фиксации.
Роланд

Загляните в это в Ubuntu на WSL. Я тоже использую pyenv, но как-то заглушил системный питон, который vimиспользует. Это поместило вещи туда, где они должны были быть, и теперь taskwikiснова работает. Ух!
Дэниел Блэк,

Спасибо, у меня это работает, я использую python 3.8
Onaapo

65

Ответ от askUbuntu работает.

Для pip2.7 вы можете сначала curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py, а затем python2.7 get-pip.py --force-reinstallпереустановить pip.

Задача решена. Также работает для python3.


6
У меня это не работает, я пробовал это несколько раз
Клив Грин

1
Я исправил это, переустановив python, что было абсолютной болью теперь, когда у меня нет ни одного из моих прошлых модулей
Клив Грин

Просто укушенный этой проблемой, похоже, это что-то вроде кластера, apt-get install python-pipкоторый не работает с 16.04.4, и вы прибегаете к двоичным установщикам blob?
Джо

1
чтобы заставить его работать, мне пришлось удалить все мои системные сторонние пипы:apt-get remove python-pip-whl
января

"В доступе отказано". Вероятно, вам нужно использовать sudo. Большинство дистрибутивов не позволяют пользователям vanilla устанавливать систему pip.
Cerin

21

Это решение работает для меня:

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

или используйте sudo для повышенных разрешений ( sudo python3 get-pip.py --force-reinstall).

Конечно, вы также можете использовать pythonвместо python3;)

Источник


20

Обратитесь к этому списку проблем

sudo easy_install pip

у меня работает под Mac OS

Ибо python3можно попробовать, sudo easy_install-3.x pipзависит от версии Python 3.x. Илиpython3 -m pip install --user --upgrade pip


1
Это старый Python2. По крайней мере, на Python3 Ubuntu вы также должны запустить sudo easy_install-3.4 pipили аналогичный.
NoBugs

Это устранило проблему, когда мне нужно обновить pip 20.2.3 до pip 21.0 в MacOS. Спасибо!
Alex L,


10

Эта проблема может быть связана с тем, что обычный пользователь не имеет права доступа к файлу пакетов python.
1. пользователь root может запустить 'pip list'
2. другой обычный пользователь не может запустить 'pip list'

[~]$ pip list
Traceback (most recent call last):
  File "/usr/bin/pip", line 7, in <module>
from pip._internal import main
ImportError: No module named pip._internal

Проверьте права доступа к файлу pip py.

[root@]# ll /usr/lib/python2.7/site-packages/pip/  
合計 24  
-rw-------  1 root root   24  67 16:57 __init__.py  
-rw-------  1 root root  163  67 16:57 __init__.pyc  
-rw-------  1 root root  629  67 16:57 __main__.py  
-rw-------  1 root root  510  67 16:57 __main__.pyc  
drwx------  8 root root 4096  67 16:57 _internal  
drwx------ 18 root root 4096  67 16:57 _vendor  

Решение: войти в систему и запустить

chmod -R 755 /usr/lib/python2.7 

исправить эту проблему.


Наконец, логическое объяснение того, в чем проблема. Повторная установка может решить проблему, но это настоящая причина, по которой она не работает.
Максим Виарг,

7

Для полноты, я только что столкнулся с этой проблемой с "последней версией Ubuntu" ... v18.04 ... и исправил ее следующим образом:

python3 -m pip install --upgrade pip

(Обратите внимание, что это было необходимо указать, python3поскольку это относится к Python 3.6.9. Команда pythonв той же системе ссылается на Python 2.7.17. Поскольку это, по-видимому, общесистемная установка, она обнаружила разрешение ["not sudo" ...] ошибка, но это не имело значения, потому что в любом случае это было неправильно. У меня возникла проблема с pip3.)


Я получил ошибку no such option: --upradeпо вашей команде - поэтому я побежал, python3 -m pip install pipи это сработало :)
Xerus

5

Я видел эту проблему, когда PYTHONPATHбыл настроен на включение встроенного site-packagesкаталога. Поскольку Python автоматически смотрит туда, в нем нет необходимости, и его можно удалить.


2
Это решило проблему для меня, спасибо. Я просто где-то сохранил $ PYTHONPATH, а затем побежал, export PYTHONPATH=""чтобы заставить работать pip.
ibowman

но при попытке echo $ PYTHONPATH пакеты сайтов не были включены.
alyssaeliyah

Я столкнулся с этим при создании виртуальной среды в системе, которая использует модули для управления пакетами программного обеспечения. Когда я загрузился, вы говорите «загрузка модуля python / 3.5.2», и он добавляет ваш PYTHONPATH. Затем, когда я активировал свой виртуальный env, он никогда не сбрасывал мой PYTHONPATH, что означало, что он нашел системный уровень, pipа не тот, который находится в моем virtualenv.
irritable_phd_syndrom

4

Я только что столкнулся с той же проблемой, и в моем случае оказалось, что это конфликт между установкой python в моем virtualenv и python для всего сайта (Ubuntu). Что решает это для меня, так это запустить pip таким образом, чтобы принудительно использовать правильную установку python (в моем vortualenv):

python3 -m pip install PACKAGE

вместо того

pip3 install PACKAGE

Я понял это, когда попытался выполнить некоторые из приведенных здесь ответов, предлагающих переустановить pip, и полученная мной ошибка указывала на существующий путь к библиотеке python для всего сайта, хотя я активировал свой virtualenv. Стоит попробовать перед удалением и повторной установкой.


Как упоминалось в этом ответе stackoverflow.com/a/50737296/1340995 , это проблема с разрешением. Я обнаружил, что использование pip с также python3 -m pipрешает эту проблему, вероятно, потому, что у pythonнего есть разрешение на выполнение, и ему не нужно, чтобы pip имел разрешение + x, поскольку он просто загружает файл, а не выполняет его.
Максим Виарг,

3

Вы используете python2 или python3? Следующая команда может быть другой!

  1. используйте, python3 -m pip --versionчтобы узнать, установлен ли у вас pip.
  2. если да, беги python3 -m pip install --upgrade pip.
  3. если нет, беги sudo apt-get install python3-pipи сделай это снова.

3

Вероятно, это из-за конфликта версий, попробуйте запустить это, он каким-то образом удалит старый пип.

sudo apt remove python pip

Как бы то ни было, это решение для дистрибутива, подобного Debian ( например , Ubuntu 16.04), где python-pipпакет был установлен на уровне дистрибутива и get-pip.pyиспользовался для пользовательской версии, pipкоторая также была в $PATH. Я sudo apt-get removeвзял python-pipпакет (2.7) и вместо него использовал тот, который находится в моем ~ / .local / bin. Больше сообщений об ошибке нет.
TheDudeAbides


2

Я исправил эту ошибку, выполнив следующие команды:

sudo apt remove python-pip
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py

Он удалит ранее установленный пип и переустановит его. Благодарность :)


1

Следующее решение решило проблему на моей машине для python2.7 "$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py", а затем "$ sudo python2.7 get-pip .py --force-переустановить "


1
Это работает для меня, но вам нужно изменить его на версию Python, которую вы используете. sudo python3 get-pip.py --force-переустановить. Отлично.
alyssaeliyah

1

Только для текущего пользователя:

easy_install --user pip

или

python -m pip install --upgrade --user pip

Второй может дать /usr/bin/python: No module named pip даже если which pipнайдет модуль с именем pip. В этом случае попробуйтеeasy_install


1

Я встретил ту же ошибку в Windows, когда попытался установить пакет через pip3:

Traceback (most recent call last):
  File "d:\anaconda\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "d:\anaconda\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "D:\Anaconda\Scripts\pip3.6.exe\__main__.py", line 5, in <module>
ModuleNotFoundError: No module named 'pip._internal'

Мой питон установлен через Anaconda. Я решил эту проблему, переустановив pip через conda:

conda install pip

После этого пип возвращается в норму.


0

У меня ничего не работало, но только одно: я использовал sudo перед командой, и она работает нормально.


Мой случай был более странным, потому что «sudo» по-прежнему выдавал мне ту же ошибку. Мне пришлось переключиться на root (sudo su на ubuntu), чтобы иметь возможность делать список pip3.5 и установку pip3.5: |
jmng

0

У меня такая же проблема с моей виртуальной средой после обновления установки python с 3.6 до 3.7, но только в глобальном масштабе pip работает нормально, для ее решения я деактивирую и удаляю свою виртуальную среду после повторного воссоздания, и теперь все в порядке, на venv:

deactivate
rm -rvf venv 

и после воссоздать виртуальную среду. Я использую Mac OS 10.11 и Python 3


0

(В Windows) не знаю, почему это происходит, но у меня была настройка PYTHONPATH, чтобы указать на c: \ python27, где был установлен python. в сочетании с virtualenv это привело к упомянутой ошибке.

решено путем удаления PYTHONPATH env var вместе


0

мое решение: первый шаг, как и большинство других ответов:

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

во-вторых, добавьте мягкую ссылку

sudo ln -s /usr/local/bin/pip /usr/bin/pip


0

вы можете сначала удалить его и установить снова, все будет в порядке. для centos:

yum remove python-pip
yum install python-pip

0

Я исправил эту проблему

sudo apt-get install python3-pip

это сработало даже для python2.7, потрясающе ...


0

Мое решение - добавить import pipскрипт, связанный с pip/pip3командами.

Во-первых, откройте файл (например /usr/local/bin/pip) в вашем любимом текстовом редакторе и в режиме sudo. Например, я использую sudo vim /usr/local/bin/pipдля открытия файла сценария.

Вы получите следующий файл:

import re
import sys

from pip._internal import main

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
    sys.exit(main())

После этого вставьте оператор import pipнепосредственно перед тем, from pip._internal import mainкак проблема будет решена.


0

Это часто происходит из-за использования pip для «обновления» установленного pip в системе и / или установки нескольких pip под пользователем. Мое решение заключалось в том, чтобы очистить несколько установленных пунктов под пользователем, переустановить репозиторий пакетов, а затем выполнить команду "pip install --user pip", как указано выше.

См .: https://github.com/pypa/pip/issues/5599 для официального полного обсуждения и исправлений проблемы.


-1

Я попробовал следующую команду, чтобы решить проблему, и у меня она сработала:

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3 get-pip.py --force-reinstall
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.