Начало
» Основни познания
»
Как да се поправи ModuleNotFoundError: Няма модул с име „pip“ в Python 3
Как да се поправи ModuleNotFoundError: Няма модул с име „pip“ в Python 3
ModuleNotFoundError: No module named 'pip'означава, че интерпретаторът на Python, който изпълнява вашата команда, не може да импортира пакета pip. Причината обикновено е една от четири неща: pip никога не е бил стартиран, използвате различна инсталация на Python от тази, която предполагате, създадена е виртуална среда без pip или е повредена, или вашият дистрибутор на Linux управлява pip отделно от основната инсталация на Python.
Най-безопасният ремонт е да се работи от интерпретатора навън. Първо идентифицирайте точния изпълним файл на Python, след това опитайте вградения ensurepipмодул на Python и преминавайте към мениджър на пакети на операционната система само get-pip.pyкогато вграденият метод не е наличен. Официалната документация на pip препоръчва извикването на pip като модул – python -m pipна Unix-подобни системи или py -m pipна Windows – защото това обвързва pip с конкретен интерпретатор.
Бърза справка: изберете правилното решение
Това, което виждаш
Най-доброто първо действие
Защо
python -m pipказва, че няма модул с име pip
Бяганеpython -m ensurepip --upgrade
CPython може да стартира своя пакетен pip, без да го изтегля.
pipработи, но python -m pipне успява
Проверка sys.executableи изпълними пътища
Вероятно смесвате инсталации на Python
No module named ensurepip
Използвайте мениджъра на пакети на вашия дистрибутор или поправете инсталацията на Python
ensurepipе по избор и дистрибуторите могат да го пропуснат
Липсва pip във виртуална среда
Bootstrap pip вътре в него или пресъздайте средата
venvобикновено инсталира pip, освен ако не --without-pipе бил използван
externally-managed-environmentпоявява се в Linux
Създайте виртуална среда
Системният Python се управлява целенасочено от мениджъра на пакети на операционната система.
Стъпка 1: Потвърдете кой интерпретатор на Python липсва pip
Не започвайте с преинсталиране на произволни пакети. Първо попитайте същия интерпретатор дали pip съществува.
Прозорци
py --version
py -m pip --version
py -c "import sys; print(sys.executable)"
where python
where pip
Ако самостоятелна команда pipили pip3сочи към една инсталация, докато pythonили python3сочи към друга, проблемът е несъответствие в интерпретатора, а не непременно липсваща инсталация на pip. Предпочитайте формата на модула, показана в официалното ръководство за потребителя на pip .
Грешката е свързана с текущо работещия интерпретатор на Python; идентифицирайте този интерпретатор, преди да промените инсталацията си.
В macOS същият симптом може да се появи в Terminal, когато python3се преобразува в инсталация на Python, която не съдържа pip.
В macOS и Linux използвайте , python3 -m pipтака че командата pip да е обвързана с интерпретатора на Python 3, който възнамерявате да използвате.
Стъпка 2: Възстановете pip с ensurepip
За нормална инсталация на CPython, ensurepipе първият метод за поправка, който трябва да опитате. Документацията на Python казва, че модулът стартира pip от компоненти, включени в пакета с интерпретатора, и не се нуждае от достъп до интернет за тази стъпка на стартиране. Модулът е добавен в Python 3.4.
Успешното ensurepipизпълнение трябва да бъде последвано от проверка на версията, използвайки същия интерпретатор на Python.
Стъпка 3: Ако ensurepip липсва, използвайте метода, подходящ за това кой е инсталирал Python.
В настоящата документация на Python изрично се посочва, че това ensurepipе по избор. Ако вашето копие на CPython не го включва, Python препоръчва да се консултирате с дистрибутора, който е предоставил този интерпретатор. Това е особено важно в Linux, където операционната система може умишлено да пакетира pip отделно.
Ubuntu или Debian-стил система Python
За Ubuntu, официалният архив с пакети предоставя python3-pipпакет. Типичната инсталация на системен пакет е:
Използвайте документацията на пакета на вашата дистрибуция, вместо да копирате aptкоманда в дистрибуция, която не е на Debian. Страницата на пакета на Ubuntu за python3-pip потвърждава, че пакетът се разпространява отделно.
Python, инсталиран от python.org
Ако официалната инсталация на python.org е повредена и ensurepipнеочаквано е недостъпна, поправянето или преинсталирането на тази инсталация на Python често е по-чисто от ръчното закърпване на файлове. Изтегляйте само от официалната страница за изтегляне на Python .
Класическият изглед на инсталатора на Python за Windows илюстрира пътя за поправка или преинсталиране; наличните версии и контролите на инсталатора могат да се различават в зависимост от изданието на Python.
А какво ще кажете за get-pip.py?
Поддръжниците на pip посочват get-pip.pyкато поддържан механизъм за инсталиране, когато pip отсъства. Ръководството за потребителя на Python Packaging препоръчва ensurepipпърво да се опита и предупреждава, че това get-pip.pyне е координирано с мениджърите на пакети на операционната система. Това предупреждение е важно за инсталации на Python, управлявани от дистрибуции.
Ако умишлено използвате скрипта bootstrap, вземете го само от местоположението, посочено в официалната документация за инсталиране на pip . Не използвайте произволно копие от форум, gist или сайт за изтегляне на трети страни.
Стъпка 4: Поправете виртуална среда, вместо да модифицирате системния Python
Модулът на Python venvинсталира pip по подразбиране, освен ако средата не е създадена с --without-pip. Ако съществуваща среда е за еднократна употреба, пресъздаването ѝ често е по-бързо и по-възпроизводимо от опитите за поправяне на частично повредена директория на пакети.
Официалната документация посочва, че сеvenvensurepip използва за зареждане на pip в нови среди по подразбиране.
Нова виртуална среда изолира проектните пакети от системния интерпретатор и обикновено включва собствен pip.
Защо това е важно за съвременните Linux дистрибуции
PEP 668 дефинира EXTERNALLY-MANAGEDмаркера, използван от дистрибуторите, за да кажат на инсталаторите на Python пакети да не променят по подразбиране глобалния контекст на системния интерпретатор. Ако pip докладва за външно управлявана среда, това е различен проблем от „pip липсва“. Препоръчителният модел обикновено е да се създаде виртуална среда, вместо да се налага глобална инсталация. Вижте PEP 668 .
Стъпка 5: Проверете корекцията със същия интерпретатор, който действително ще използвате
След всяка поправка, проверете както pip, така и целевия пакет от един и същ изпълним Python файл.
Ако работите в IDE или преносим компютър, проверете и интерпретатора, избран от този инструмент. Често срещан модел на неуспех е инсталирането на пакети с един терминал Python, докато редакторът изпълнява друг Python или друга виртуална среда.
Когато IDE все още съобщава за липсващи пакети, сравнете неговия Python изпълним файл с интерпретатора, използван за успешното изпълнение на командата pip.
Наистина ли трябва да импортирате pip във вашия Python код?
Обикновено не. В собствената документация на pip се казва, че pip е програма от команден ред и че вътрешните му API не се поддържат като публичен Python API. Въпреки че import pipможе да работи след инсталация, кодът на приложението не трябва да зависи от вътрешните компоненти на pip.
Ако даден скрипт наистина трябва да извика pip, документацията на pip препоръчва стартирането му като подпроцес с текущия интерпретатор:
Често срещани грешки, които поддържат грешката жива
Изпълнява се, pip install pipкогато pip вече липсва: първо използвайте ensurepip, мениджър на пакети на операционната система или официалния метод за bootstrap.
Използване sudo pipв Python, управляван от дистрибуция: това може да е в конфликт със собствеността на пакета на операционната система. Предпочитайте виртуална среда.
Коригиране на PATH, когато самият модул отсъства: PATH контролира дали shell намира изпълним файл; не инсталира pipмодула в Python интерпретатор.
Инсталиране в грешна версия на Python: използвайте python -m pip, python3 -m pipили , py -m pipвместо да приемате, че гола pipкоманда е насочена към правилния интерпретатор.
Повторно използване на преместена виртуална среда: Документацията за venv на Python описва средите като за еднократна употреба и като цяло не преносими. Създайте отново преместена среда, вместо да се опитвате да поправите твърдо кодирани пътища.
Окончателен контролен списък
Потвърдете точния изпълним файл на Python с sys.executable.
Изпълнете pip през този интерпретатор с -m pip.
Опитайте ensurepip --upgrade, преди да изтеглите друг инструмент за първоначално зареждане.
Ако ensurepipне е налично, следвайте инструкциите за управление на пакети на дистрибутора.
Използвайте виртуална среда за зависимостите на проекта, особено при външно управлявани Linux инсталации.
Проверете резултата от същия терминал, IDE, преносим компютър или среда за изпълнение на услуга, която изпълнява вашия проект.
За повечето стандартни инсталации на Python 3, най-краткото надеждно решение е python -m ensurepip --upgradeпоследвано от python -m pip --version, като се замества python3на Unix-подобни системи или pyна Windows, според случая. Ако това не успее, защото ensurepipлипсва , спрете и определете кой е предоставил вашата инсталация на Python, преди да изберете следващия метод за поправка.