Sākums
» Pamatzināšanas
»
Kā novērst ModuleNotFoundError kļūdu: Python 3 nav moduļa ar nosaukumu “pip”
Kā novērst ModuleNotFoundError kļūdu: Python 3 nav moduļa ar nosaukumu “pip”
ModuleNotFoundError: No module named 'pip'nozīmē, ka Python interpretētājs, kas izpilda jūsu komandu, nevar importēt pip pakotni. Iemesls parasti ir viens no četriem: pip nekad netika startēts, jūs izmantojat citu Python instalāciju, nekā domājat, virtuālā vide tika izveidota bez pip vai ir bojāta, vai jūsu Linux izplatītājs pārvalda pip atsevišķi no Python bāzes instalācijas.
Drošākais labojums ir strādāt no interpretatora uz āru. Vispirms identificējiet precīzu Python izpildāmo failu, pēc tam izmēģiniet Python iebūvēto ensurepipmoduli un pārejiet uz operētājsistēmas pakotņu pārvaldnieku tikai tad, get-pip.pyja iebūvētā metode nav pieejama. Oficiālā pip dokumentācija iesaka izsaukt pip kā moduli — python -m pipUnix tipa sistēmās vai py -m pipWindows —, jo tas saista pip ar konkrētu interpretatoru.
Īsa uzziņa: izvēlieties pareizo risinājumu
Ko jūs redzat
Labākā pirmā darbība
Kāpēc
python -m pipsaka, ka nav moduļa ar nosaukumu pip
Skrienpython -m ensurepip --upgrade
CPython var palaist savu komplektā iekļauto pip, to nelejupielādējot
pipdarbojas, bet python -m pipneizdodas
Pārbaudes sys.executableun izpildāmie ceļi
Jūs, iespējams, jaucat Python instalācijas
No module named ensurepip
Izmantojiet izplatītāja pakotņu pārvaldnieku vai salabojiet Python instalāciju.
ensurepipir neobligāts, un izplatītāji to var izlaist
Virtuālajai videi trūkst pip
Ievietojiet tajā bootstrap pip vai atjaunojiet vidi
venvparasti instalē pip, ja vien --without-pipnetika izmantots
externally-managed-environmentparādās operētājsistēmā Linux
Izveidojiet virtuālu vidi
Sistēmas Python programmēšanas valodu apzināti pārvalda OS pakotņu pārvaldnieks.
1. darbība. Apstipriniet, kuram Python interpretētājam trūkst pip koda.
Nesāciet ar nejaušu pakotņu atkārtotu instalēšanu. Vispirms pajautājiet tam pašam interpretētājam, vai pip eksistē.
Logi
py --version
py -m pip --version
py -c "import sys; print(sys.executable)"
where python
where pip
Ja savrupais objekts pipvai pip3komanda norāda uz vienu instalāciju, bet pythonvai python3norāda uz citu, problēma ir interpretētāja neatbilstība, ne vienmēr trūkstoša pip instalācija. Dodiet priekšroku moduļa veidlapai, kas parādīta oficiālajā pip lietotāja rokasgrāmatā .
Kļūda ir saistīta ar pašlaik palaisto Python interpretētāju; pirms instalācijas maiņas identificējiet šo interpretētāju.
macOS sistēmā tas pats simptoms var parādīties programmā Terminal, ja python3tiek konstatēta Python instalācija, kas nesatur pip.
macOS un Linux operētājsistēmās izmantojiet , python3 -m piplai pip komanda būtu saistīta ar Python 3 interpretētāju, kuru plānojat izmantot.
2. darbība: atjaunojiet pip, izmantojot ensurepip
Parastai CPython instalācijai ensurepippirmā izmēģināmā labošanas metode ir . Python dokumentācijā teikts, ka modulis sāknējas ar pip no komponentiem, kas iekļauti interpretētājā, un šim sāknēšanas solim nav nepieciešama piekļuve internetam. Modulis tika pievienots Python 3.4 versijā.
Pēc veiksmīgas ensurepippalaišanas jāveic versijas pārbaude, izmantojot to pašu Python interpretētāju.
3. darbība. Ja trūkst ensurepip, izmantojiet metodi, kas atbilst Python instalētājam.
Pašreizējā Python dokumentācijā ir skaidri norādīts, ka tas ensurepipir neobligāts. Ja jūsu CPython kopijā tas nav iekļauts, Python iesaka konsultēties ar izplatītāju, kas piegādāja šo interpretatoru. Tas ir īpaši svarīgi operētājsistēmā Linux, kur operētājsistēma var apzināti iepakot pip atsevišķi.
Ubuntu vai Debian stila sistēma Python
Ubuntu operētājsistēmai oficiālajā pakotņu arhīvā ir pieejama python3-pippakotne. Tipiska sistēmas pakotnes instalācija ir šāda:
Izmantojiet savas distributīvās versijas pakotnes dokumentāciju, nevis kopējiet aptkomandu uz ne-Debian distributīvu. Ubuntu pakotnes lapa par python3-pip apstiprina, ka pakotne tiek izplatīta atsevišķi.
Python instalēts no python.org
Ja oficiālā python.org instalācija ir bojāta un ensurepipnegaidīti nav pieejama, šīs Python instalācijas labošana vai atkārtota instalēšana bieži vien ir vienkāršāka nekā failu manuāla ielāpošana. Lejupielādējiet tikai no oficiālās Python lejupielāžu lapas .
Klasisks Python operētājsistēmai Windows instalētāja skats ilustrē labošanas vai atkārtotas instalēšanas ceļu; pieejamās versijas un instalētāja vadīklas var atšķirties atkarībā no Python laidiena.
Kā ar get-pip.py?
get-pip.pyJa pip nav pieejams, pip uzturētāji to norāda kā atbalstītu instalēšanas mehānismu. Python Packaging lietotāja rokasgrāmatā ieteicams ensurepipvispirms izmēģināt un brīdināts, ka tas get-pip.pynesaskaņojas ar operētājsistēmas pakotņu pārvaldniekiem. Šim brīdinājumam ir nozīme distro pārvaldītās Python instalācijās.
Ja apzināti izmantojat sāknēšanas skriptu, iegūstiet to tikai no atrašanās vietas, uz kuru ir norādīta saite oficiālajā pip instalēšanas dokumentācijā . Neizmantojiet nejaušu kopiju no foruma, Gist vai trešās puses lejupielādes vietnes.
4. darbība. Virtuālās vides labošana, nevis sistēmas Python modificēšana
Python venvmodulis pēc noklusējuma instalē pip, ja vien vide nav izveidota ar --without-pip. Ja esoša vide ir vienreiz lietojama, tās atkārtota izveide bieži vien ir ātrāka un reproducējamāka nekā mēģinājums labot daļēji bojātu pakotņu direktoriju.
Oficiālajā dokumentācijā teikts, ka tas pēcvenvensurepip noklusējuma tiek izmantots, lai palaistu pip jaunās vidēs.
Jauna virtuālā vide izolē projekta pakotnes no sistēmas interpretatora un parasti ietver savu pip failu.
Kāpēc tas ir svarīgi mūsdienu Linux distribūcijās
PEP 668 definē EXTERNALLY-MANAGEDmarķieri, ko izplatītāji izmanto, lai norādītu Python pakotņu instalētājiem pēc noklusējuma nemaināt sistēmas interpretētāja globālo pakotņu kontekstu. Ja pip ziņo par ārēji pārvaldītu vidi, tā ir cita problēma nekā “pip trūkst”. Ieteicamais modelis parasti ir izveidot virtuālu vidi, nevis piespiest globālu instalēšanu. Skatīt PEP 668 .
5. darbība. Pārbaudiet labojumu ar to pašu tulku, kuru faktiski izmantosiet
Pēc jebkura remonta pārbaudiet gan pip, gan mērķa pakotni no tā paša Python izpildāmā faila.
Ja strādājat IDE vai piezīmju grāmatiņā, pārbaudiet arī šī rīka atlasīto interpretētāju. Bieži sastopama kļūme ir pakotņu instalēšana, izmantojot vienu termināli, kurā darbojas Python, kamēr redaktors izpilda citu Python vai citu virtuālo vidi.
Ja IDE joprojām ziņo par trūkstošām pakotnēm, salīdziniet tās Python izpildāmo failu ar interpretatoru, kas tika izmantots jūsu veiksmīgajai pip komandai.
Vai jums tiešām ir jāimportē pip savā Python kodā?
Parasti nē. Paša pip dokumentācijā teikts, ka pip ir komandrindas programma un ka tās iekšējās API netiek atbalstītas kā publiska Python API. Pat ja import pippēc instalēšanas tas var darboties, lietojumprogrammas kodam nevajadzētu būt atkarīgam no pip iekšējām sastāvdaļām.
Ja skriptam tiešām ir jāizsauc pip, pip dokumentācija iesaka to palaist kā apakšprocesu ar pašreizējo interpretētāju:
Darbojas, pip install pipja pip jau trūkst: vispirms izmantojiet ensurepip, OS pakotņu pārvaldnieku vai oficiālo bootstrap metodi.
Izmantojot sudo pipdistro pārvaldītā Python vidē: tas var konfliktēt ar operētājsistēmas pakotnes īpašumtiesībām. Priekšroka jādod virtuālai videi.
PATH labošana, ja paša moduļa nav: PATH kontrolē, vai čaula atrod izpildāmo failu; tas neinstalē moduli pipPython interpretētājā.
Instalēšana nepareizajā Python versijā: izmantojiet python -m pip, python3 -m pip, vai , py -m pipnevis pieņemot, ka vienkārša pipkomanda ir paredzēta pareizajam interpretētājam.
Pārvietotas virtuālās vides atkārtota izmantošana: Python venv dokumentācijā vides ir aprakstītas kā vienreiz lietojamas un parasti nav pārnēsājamas. Izveidojiet pārvietotu vidi no jauna, nevis mēģiniet labot cietkodā ierakstītus ceļus.
Galīgais kontrolsaraksts
Apstipriniet precīzu Python izpildāmo failu ar sys.executable.
Palaidiet pip caur šo interpretatoru ar -m pip.
Izmēģiniet ensurepip --upgradepirms cita sāknēšanas rīka lejupielādes.
Ja ensurepipnav pieejams, ievērojiet izplatītāja norādījumus par iepakojuma pārvaldību.
Izmantojiet virtuālo vidi projektu atkarībām, īpaši ārēji pārvaldītās Linux instalācijās.
Pārbaudiet rezultātu no tā paša termināļa, IDE, piezīmju grāmatiņas vai pakalpojuma izpildlaika, kas darbina jūsu projektu.
Vairumam standarta Python 3 instalāciju īsākais un uzticamākais labojums ir python -m ensurepip --upgrade, python -m pip --versionkas python3Unix tipa sistēmās vai pyWindows sistēmās tiek aizstāts atbilstoši nepieciešamībai. Ja tas neizdodas, jo ensurepiptrūkst , apstājieties un noskaidrojiet, kurš nodrošināja jūsu Python instalāciju, pirms izvēlaties nākamo labošanas metodi.