Как да се поправи 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 --upgradeCPython може да стартира своя пакетен pip, без да го изтегля.
pipработи, но python -m pipне успяваПроверка sys.executableи изпълними пътищаВероятно смесвате инсталации на Python
No module named ensurepipИзползвайте мениджъра на пакети на вашия дистрибутор или поправете инсталацията на Pythonensurepipе по избор и дистрибуторите могат да го пропуснат
Липсва 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

macOS и Linux

python3 --version
python3 -m pip --version
python3 -c 'import sys; print(sys.executable)'
command -v python3
command -v pip3

Ако самостоятелна команда pipили pip3сочи към една инсталация, докато pythonили python3сочи към друга, проблемът е несъответствие в интерпретатора, а не непременно липсваща инсталация на pip. Предпочитайте формата на модула, показана в официалното ръководство за потребителя на pip .

Командният ред на Windows, показващ Python 3 и ModuleNotFoundError след опит за импортиране на pip.
Грешката е свързана с текущо работещия интерпретатор на Python; идентифицирайте този интерпретатор, преди да промените инсталацията си.

В macOS същият симптом може да се появи в Terminal, когато python3се преобразува в инсталация на Python, която не съдържа pip.

macOS терминал, показващ Python 3 и ModuleNotFoundError за pip.
В macOS и Linux използвайте , python3 -m pipтака че командата pip да е обвързана с интерпретатора на Python 3, който възнамерявате да използвате.

Стъпка 2: Възстановете pip с ensurepip

За нормална инсталация на CPython, ensurepipе първият метод за поправка, който трябва да опитате. Документацията на Python казва, че модулът стартира pip от компоненти, включени в пакета с интерпретатора, и не се нуждае от достъп до интернет за тази стъпка на стартиране. Модулът е добавен в Python 3.4.

Прозорци

py -m ensurepip --upgrade
py -m pip --version
py -m pip install --upgrade pip

macOS и Linux

python3 -m ensurepip --upgrade
python3 -m pip --version
python3 -m pip install --upgrade pip

Първата команда инсталира или обновява версията на pip, включена в пакета с тази версия на Python. Последната команда може да актуализира pip от конфигурирания индекс на пакетите. Вижте документацията на Pythonensurepip и официалното ръководство за инсталиране на pip .

Linux терминал, показващ python3 ensurepip, последван от успешна проверка на версията на python3 -m pip.
Успешното ensurepipизпълнение трябва да бъде последвано от проверка на версията, използвайки същия интерпретатор на Python.

Стъпка 3: Ако ensurepip липсва, използвайте метода, подходящ за това кой е инсталирал Python.

В настоящата документация на Python изрично се посочва, че това ensurepipе по избор. Ако вашето копие на CPython не го включва, Python препоръчва да се консултирате с дистрибутора, който е предоставил този интерпретатор. Това е особено важно в Linux, където операционната система може умишлено да пакетира pip отделно.

Ubuntu или Debian-стил система Python

За Ubuntu, официалният архив с пакети предоставя python3-pipпакет. Типичната инсталация на системен пакет е:

sudo apt update
sudo apt install python3-pip python3-venv

След това проверете с:

python3 -m pip --version

Използвайте документацията на пакета на вашата дистрибуция, вместо да копирате aptкоманда в дистрибуция, която не е на Debian. Страницата на пакета на Ubuntu за python3-pip потвърждава, че пакетът се разпространява отделно.

Python, инсталиран от python.org

Ако официалната инсталация на python.org е повредена и ensurepipнеочаквано е недостъпна, поправянето или преинсталирането на тази инсталация на Python често е по-чисто от ръчното закърпване на файлове. Изтегляйте само от официалната страница за изтегляне на Python .

Екран на инсталатора на Python за Windows, показващ стандартната опция за инсталиране и квадратчето за отметка PATH.
Класическият изглед на инсталатора на 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. Ако съществуваща среда е за еднократна употреба, пресъздаването ѝ често е по-бързо и по-възпроизводимо от опитите за поправяне на частично повредена директория на пакети.

Прозорци

py -m venv .venv
.venv\Scriptsctivate
python -m pip --version

macOS и Linux

python3 -m venv .venv
source .venv/bin/activate
python -m pip --version

Ако средата вече съществува и трябва да я запазите, активирайте я и опитайте:

python -m ensurepip --upgrade
python -m pip install --upgrade pip

Официалната документация посочва, че сеvenvensurepip използва за зареждане на pip в нови среди по подразбиране.

Терминал, показващ създаването и активирането на dot-venv среда, последвано от проверка на pip версията и инсталиране на пакета.
Нова виртуална среда изолира проектните пакети от системния интерпретатор и обикновено включва собствен pip.

Защо това е важно за съвременните Linux дистрибуции

PEP 668 дефинира EXTERNALLY-MANAGEDмаркера, използван от дистрибуторите, за да кажат на инсталаторите на Python пакети да не променят по подразбиране глобалния контекст на системния интерпретатор. Ако pip докладва за външно управлявана среда, това е различен проблем от „pip липсва“. Препоръчителният модел обикновено е да се създаде виртуална среда, вместо да се налага глобална инсталация. Вижте PEP 668 .

Стъпка 5: Проверете корекцията със същия интерпретатор, който действително ще използвате

След всяка поправка, проверете както pip, така и целевия пакет от един и същ изпълним Python файл.

Прозорци

py -m pip --version
py -m pip install requests
py -c "import requests; print(requests.__version__)"

macOS и Linux

python3 -m pip --version
python3 -m pip install requests
python3 -c 'import requests; print(requests.__version__)'

Ако работите в IDE или преносим компютър, проверете и интерпретатора, избран от този инструмент. Често срещан модел на неуспех е инсталирането на пакети с един терминал Python, докато редакторът изпълнява друг Python или друга виртуална среда.

Редактор на код, показващ Python код, който отпечатва pip версията и изпълнимия Python файл, с успешен терминален резултат.
Когато IDE все още съобщава за липсващи пакети, сравнете неговия Python изпълним файл с интерпретатора, използван за успешното изпълнение на командата pip.

Наистина ли трябва да импортирате pip във вашия Python код?

Обикновено не. В собствената документация на pip се казва, че pip е програма от команден ред и че вътрешните му API не се поддържат като публичен Python API. Въпреки че import pipможе да работи след инсталация, кодът на приложението не трябва да зависи от вътрешните компоненти на pip.

Ако даден скрипт наистина трябва да извика pip, документацията на pip препоръчва стартирането му като подпроцес с текущия интерпретатор:

import subprocess
import sys

subprocess.check_call([
    sys.executable,
    "-m",
    "pip",
    "install",
    "SomePackage",
])

Вижте „Използване на 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, преди да изберете следващия метод за поправка.

Оставете коментар

Как да поправите „CSS стиловете на Tailwind не се актуализират“ в приложение Vite React

Как да поправите „CSS стиловете на Tailwind не се актуализират“ в приложение Vite React

Поправете CSS стиловете на Tailwind, които не се актуализират във Vite React, като проверите настройката на Tailwind v4, CSS импортирането, откриването на източници, динамичните класове, HMR и остарелите кешове.

Как да се поправи ModuleNotFoundError: Няма модул с име „pip“ в Python 3

Как да се поправи ModuleNotFoundError: Няма модул с име „pip“ в Python 3

Поправете ModuleNotFoundError на Python 3 за pip на Windows, macOS и Linux с ensurepip, OS пакети, виртуални среди и проверки на интерпретатора.

Как да поправите грешката „Отказано разрешение (публичен ключ)“ в GitHub SSH

Как да поправите грешката „Отказано разрешение (публичен ключ)“ в GitHub SSH

Поправете отказан достъп до GitHub SSH (публичен ключ), като проверите хоста, активния SSH ключ, GitHub акаунта, SSO оторизацията, отдалечения URL адрес и достъпа до порт 22.

Как да поправите „Git Push Rejected: Non-FastForward“ без загуба на промени

Как да поправите „Git Push Rejected: Non-FastForward“ без загуба на промени

Поправете безопасно Git push, който не превърта напред. Защитете локалната работа, извлечете отдалечени коммити, изберете сливане или пребазиране, разрешите конфликти и push-вайте без загуба на промени.

Как да поправите грешката „Nginx 502 Bad Gateway“ при проксиране към Node.js

Как да поправите грешката „Nginx 502 Bad Gateway“ при проксиране към Node.js

Поправете грешките Nginx 502 Bad Gateway с Node.js upstream, като проверите порта на приложението, NGINX лог файловете, proxy_pass адреса, мрежата на контейнера, времето за изчакване и презареждането.

Как да поправим „Тип 'null' не може да се присвои на тип“ в TypeScript

Как да поправим „Тип 'null' не може да се присвои на тип“ в TypeScript

Поправете грешката на TypeScript „Тип 'null' не може да се присвоява на тип“ с типове обединения, стесняване, стойности по подразбиране и безопасни твърдения под strictNullChecks.

Как да поправите грешката „Prisma Client has not been generated yet“

Как да поправите грешката „Prisma Client has not been generated yet“

Поправете грешката за негенериран Prisma Client, като проверите генератора, схемата, изходния път, импортите, версиите, настройката на монорепо и стъпките за изграждане при внедряване.

Как да поправим "ERR_MODULE_NOT_FOUND" в Node.js ESM импортиране

Как да поправим "ERR_MODULE_NOT_FOUND" в Node.js ESM импортиране

Поправете Node.js ERR_MODULE_NOT_FOUND в ESM, като проверите пътищата за импортиране, файловите разширения, инсталирането на пакети, експортирането, ESM режима и чистите инсталации.

Как да поправите проблема със SSL сертификата: Unable to Get Local Issuer Certificate в Git

Как да поправите проблема със SSL сертификата: Unable to Get Local Issuer Certificate в Git

Поправете грешката на Git "unable to get local issuer certificate", като идентифицирате бекенда за доверие, инсталирате правилната CA верига и запазите SSL верификацията активирана.

Как да поправите грешката за изтичане на мрежовото време в Mongoose връзка с MongoDB

Как да поправите грешката за изтичане на мрежовото време в Mongoose връзка с MongoDB

Поправете грешките за изтичане на мрежовото време в Mongoose, като идентифицирате типа на таймаута, тествате достъпността на Atlas или TCP, коригирате URI и настройвате таймаутите само когато е оправдано.