Hem
» Grundläggande kunskap
»
Så här åtgärdar du ModuleNotFoundError: Ingen modul med namnet 'pip' i Python 3
Så här åtgärdar du ModuleNotFoundError: Ingen modul med namnet 'pip' i Python 3
ModuleNotFoundError: No module named 'pip'betyder att Python-tolken som kör ditt kommando inte kan importera pip-paketet. Orsaken är vanligtvis en av fyra saker: pip startades aldrig, du använder en annan Python-installation än du tror, en virtuell miljö skapades utan pip eller blev skadad, eller så hanterar din Linux-distributör pip separat från Python-basinstallationen.
Den säkraste reparationen är att arbeta utifrån tolken. Identifiera först den exakta Python-körbara filen, prova sedan Pythons inbyggda ensurepipmodul och byt bara till en pakethanterare i ett operativsystem eller get-pip.pynär den inbyggda metoden inte är tillgänglig. Den officiella pip-dokumentationen rekommenderar att pip anropas som en modul – python -m pippå Unix-liknande system eller py -m pippå Windows – eftersom det knyter pip till en specifik tolk.
Snabbreferens: välj rätt lösning
Vad du ser
Bästa första åtgärden
Varför
python -m pipsäger ingen modul med namnet pip
Siktpython -m ensurepip --upgrade
CPython kan starta upp sin medföljande pip utan att ladda ner den
pipfungerar, men python -m pipmisslyckas
Kontrollera sys.executableoch körbara sökvägar
Du blandar förmodligen ihop Python-installationer
No module named ensurepip
Använd din distributörs pakethanterare eller reparera Python-installationen
ensurepipär valfritt och distributörer kan utelämna det
En virtuell miljö saknar pip
Bootstrap pip inuti den eller återskapa miljön
venvinstallerar normalt pip om inte --without-pipanvändes
externally-managed-environmentvisas på Linux
Skapa en virtuell miljö
Systemet Python hanteras avsiktligt av operativsystemets pakethanterare
Steg 1: Bekräfta vilken Python-tolk som saknar pip
Börja inte med att ominstallera slumpmässiga paket. Fråga först samma interpreter om pip finns.
Fönster
py --version
py -m pip --version
py -c "import sys; print(sys.executable)"
where python
where pip
Om ett fristående kommando pipeller pip3ett kommando pekar på en installation medan pythoneller python3pekar på en annan, är problemet en tolkningsmatchning, inte nödvändigtvis en saknad pip-installation. Föredra modulformen som visas i den officiella pip-användarhandboken .
Felet är kopplat till den Python-tolk som körs för närvarande; identifiera den tolken innan du ändrar din installation.
På macOS kan samma symptom uppstå i Terminal när python3den löses till en Python-installation som inte innehåller pip.
På macOS och Linux, använd python3 -m pipså att pip-kommandot är kopplat till den Python 3-tolk du avser att använda.
Steg 2: Återställ pip med ensurepip
För en normal CPython-installation ensurepipär den första reparationsmetoden att prova. Pythons dokumentation säger att modulen bootstrapar pip från komponenter som medföljer interpretern och inte behöver internetåtkomst för det bootstrap-steget. Modulen lades till i Python 3.4.
En lyckad ensurepipkörning bör följas av en versionskontroll med samma Python-tolk.
Steg 3: Om ensurepip saknas, använd den metod som är lämplig för den som installerade Python.
Nuvarande Python-dokumentation anger uttryckligen att det ensurepipär valfritt. Om din kopia av CPython inte inkluderar det rekommenderar Python att du konsulterar distributören som levererade den tolken. Detta är särskilt viktigt på Linux, där operativsystemet avsiktligt kan paketera pip separat.
Ubuntu eller Debian-liknande system Python
För Ubuntu tillhandahåller det officiella paketarkivet ett python3-pippaket. En typisk systempaketinstallation är:
Använd din distributions egen paketdokumentation istället för att kopiera ett aptkommando till en icke-Debian-distribution. Ubuntu-paketsidan för python3-pip bekräftar att paketet distribueras separat.
Python installerat från python.org
Om en officiell python.org-installation är skadad och ensurepipoväntat inte är tillgänglig, är det ofta smidigare att reparera eller ominstallera Python-installationen än att uppdatera filer manuellt. Ladda endast ner från den officiella Python-nedladdningssidan .
En klassisk installationsvy för Python för Windows illustrerar reparations- eller ominstallationssökvägen; tillgängliga versioner och installationskontroller kan variera beroende på Python-utgåva.
Vad sägs om get-pip.py?
PIP-underhållarna listar get-pip.pysom en installationsmekanism som stöds när pip saknas. Python Packaging User Guide rekommenderar att man försöker ensurepipförst och varnar för att det get-pip.pyinte koordinerar med operativsystemets pakethanterare. Den varningen är viktig för distributionshanterade Python-installationer.
Om du avsiktligt använder bootstrap-skriptet, hämta det endast från den plats som länkas av den officiella pip-installationsdokumentationen . Använd inte en slumpmässig kopia från ett forum, GIST eller en nedladdningssajt från tredje part.
Steg 4: Reparera en virtuell miljö istället för att modifiera system Python
Pythons venvmodul installerar pip som standard om inte miljön skapades med --without-pip. Om en befintlig miljö är engångsanvändning är det ofta snabbare och mer reproducerbart att återskapa den än att försöka reparera en delvis trasig paketkatalog.
En ny virtuell miljö isolerar projektpaket från systemtolken och inkluderar normalt sin egen pip.
Varför detta är viktigt på moderna Linuxdistributioner
PEP 668 definierar EXTERNALLY-MANAGEDmarkören som används av distributörer för att tala om för Python-paketinstallatörer att inte ändra systemtolkens globala paketkontext som standard. Om pip rapporterar en externt hanterad miljö är det ett annat problem än "pip saknas". Det rekommenderade mönstret är vanligtvis att skapa en virtuell miljö snarare än att tvinga fram en global installation. Se PEP 668 .
Steg 5: Verifiera korrigeringen med samma tolk som du faktiskt kommer att använda
Efter varje reparation, verifiera både pip och ditt målpaket från samma Python-körbara fil.
Om du arbetar inuti en IDE eller anteckningsbok, kontrollera även vilken tolk som valts av det verktyget. Ett vanligt felmönster är att installera paket med en Python-terminal medan editorn kör en annan Python- eller en annan virtuell miljö.
När en IDE fortfarande rapporterar saknade paket, jämför dess Python-körbara fil med tolken som användes för ditt lyckade pip-kommando.
Behöver du verkligen importera pip i din Python-kod?
Vanligtvis inte. pips egen dokumentation säger att pip är ett kommandoradsprogram och att dess interna API:er inte stöds som ett publikt Python API. Även om det import pipkan fungera efter installationen, bör programkoden inte vara beroende av pips interna funktioner.
Om ett skript verkligen behöver anropa pip, rekommenderar pip-dokumentationen att det startas som en delprocess med den aktuella tolken:
Körning pip install pipnär pip redan saknas: använd ensurepip, en OS-pakethanterare eller den officiella bootstrap-metoden först.
Användning sudo pippå en distributionshanterad Python: detta kan komma i konflikt med operativsystemets paketägarskap. Föredra en virtuell miljö.
Åtgärdar PATH när själva modulen saknas: PATH styr om ett skal hittar en körbar fil; det installerar inte pipmodulen i en Python-tolk.
Installera i fel Python-version: använd python -m pip, python3 -m pip, eller py -m pipsnarare än att anta att ett rent pipkommando riktar sig mot rätt tolk.
Återanvändning av en flyttad virtuell miljö: Pythons venv-dokumentation beskriver miljöer som engångsanvändbara och generellt sett inte portabla. Återskapa en flyttad miljö istället för att försöka reparera hårdkodade sökvägar.
Slutlig checklista
Bekräfta den exakta Python-körbara filen med sys.executable.
Kör pip genom den tolken med -m pip.
Testa ensurepip --upgradeinnan du laddar ner ett annat bootstrap-verktyg.
Om ensurepipinte är tillgänglig, följ distributörens instruktioner för pakethantering.
Använd en virtuell miljö för projektberoenden, särskilt på externt hanterade Linux-installationer.
Verifiera resultatet från samma terminal, IDE, anteckningsbok eller tjänstkörning som kör ditt projekt.
python -m ensurepip --upgradeFör de flesta vanliga Python 3-installationer följs den kortaste tillförlitliga lösningen av python -m pip --version, som ersätter python3på Unix-liknande system eller pypå Windows beroende på vad som är lämpligt. Om det misslyckas på grund av ensurepipatt saknas, stoppa och identifiera vem som levererade din Python-installation innan du väljer nästa reparationsmetod.