pip: немає модуля з іменем _internal


98

У мене проблема, коли я намагаюся будь-яким чином використовувати 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). Здається, все працює, як очікувалося.
Гримдрем,

У мене досі така сама проблема, я використовую pip у середовищі conda, python 2.7, і я використовую pip install ipdb. Будь-яке уявлення про це?
Гарвіта Тіварі

1
Виконували кроки плюс прапор -Н:sudo -H python3.7 get-pip.py --force-reinstall
Андрес Леон Рангель,

Відповіді:


111

Це зробило це для мене:

python -m pip install --upgrade pip

Середовище: OSX && Python встановлюється за допомогою заварювання


6
Дякую, це було рішення для мене за допомогою python3.
Furbeenator

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

Дивно, що це також тут виправлено. Я мав оновити #searx до останнього коміту.
Роланд

Натрапив на це на Ubuntu на WSL. Я також використовую pyenv, але якось приглушив системний python, який vimвикористовує. Це поставило речі там, де вони мали бути. І тепер taskwikiзнову працює. Ух!
Деніел Блек

Дякую, це працює для мене, я використовую python 3.8
Onaapo

62

Відповідь від 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. Більшість дистрибутивів не дозволяють користувачам ванілі встановлювати pip-систему широко.
Черін

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;)

Джерело


19

Зверніться до цього списку випусків

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


9

Ця проблема, можливо, через те, що звичайний користувач не має привілеїв на доступ до файлів py.
1. кореневий користувач може запустити "піп-список"
2. інший загальний користувач не може запустити "піп-список"

[~]$ 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  6  7 16:57 __init__.py  
-rw-------  1 root root  163  6  7 16:57 __init__.pyc  
-rw-------  1 root root  629  6  7 16:57 __main__.py  
-rw-------  1 root root  510  6  7 16:57 __main__.pyc  
drwx------  8 root root 4096  6  7 16:57 _internal  
drwx------ 18 root root 4096  6  7 16:57 _vendor  

рішення: вхід і запуск root користувача

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

вирішити цю проблему.


Нарешті логічне пояснення того, в чому проблема насправді. Повторна установка може вирішити проблему, але це справжня причина, що вона не працює в першу чергу.
Максим Віарг,

6

Для повноти, я щойно зіткнувся з цією проблемою з "останнім 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і це спрацювало :)
Ксер

5

Я бачив цю проблему, коли PYTHONPATHбуло встановлено включення вбудованого site-packagesкаталогу. Оскільки Python шукає там автоматично, це непотрібно і його можна видалити.


2
Це вирішило це для мене, дякую. Я просто десь заощадив $ PYTHONPATH, а потім побіг, export PYTHONPATH=""щоб піп працював.
ibowman

але при спробі відлуння $ 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-reinstall "


1
Це працює для мене, однак вам доведеться змінити його на версію python, яку ви використовуєте. sudo python3 get-pip.py - примусове перевстановлення. Чудово.
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'

Мій python встановлюється через Anaconda. Я вирішив цю проблему, перевстановивши pip через conda:

conda install pip

Після цього 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

(У вікнах) не впевнений, чому це відбувається, але у мене було налаштовано PYTHONPATH, щоб вказати на c: \ python27, де було встановлено python. у поєднанні з virtualenv це призвело до згаданої помилки.

вирішено шляхом видалення разом з варiєю PYTHONPATH env


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

Ви можете видалити його спочатку і встановити знову, це буде нормально. для центів:

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, а потім "pip install --user pip", як зазначено вище.

Дивіться: https://github.com/pypa/pip/issues/5599, щоб отримати офіційне повне обговорення та виправлення проблеми.


0

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

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.