Etusivu
» Perustieto
»
Kuinka korjata ModuleNotFoundError: Ei moduulia nimeltä 'pip' Python 3:ssa
Kuinka korjata ModuleNotFoundError: Ei moduulia nimeltä 'pip' Python 3:ssa
ModuleNotFoundError: No module named 'pip'tarkoittaa, että komentoasi suorittava Python-tulkki ei voi tuoda pip-pakettia. Syynä on yleensä yksi neljästä asiasta: pip-pakettia ei ole koskaan käynnistetty, käytät eri Python-asennusta kuin luulet, virtuaaliympäristö on luotu ilman pip-pakettia tai se on vioittunut tai Linux-jakelijasi hallitsee pip-pakettia erillään Pythonin perusasennuksesta.
Turvallisin korjaus on työskennellä tulkista ulospäin. Ensin tunnistetaan tarkka Python-suoritettava tiedosto, kokeillaan sitten Pythonin sisäänrakennettua ensurepipmoduulia ja siirrytään käyttöjärjestelmän paketinhallintaan vasta, get-pip.pykun sisäänrakennettu metodi ei ole käytettävissä. Virallinen pip-dokumentaatio suosittelee pip-komennon kutsumista moduulina – python -m pipUnix-tyyppisissä järjestelmissä tai py -m pipWindowsissa – koska se sitoo pip-komennon tiettyyn tulkkiin.
Pikaopas: valitse oikea ratkaisu
Mitä näet
Paras ensimmäinen toimenpide
Miksi
python -m pipsanoo, ettei pip-nimistä moduulia ole
Juoksepython -m ensurepip --upgrade
CPython voi käynnistää mukana tulevan pip-tiedostonsa lataamatta sitä
piptoimii, mutta python -m pipepäonnistuu
Tarkistus- sys.executableja suorituspolut
Todennäköisesti sekoitat Python-asennuksia
No module named ensurepip
Käytä jakelijan pakettienhallintaa tai korjaa Pythonin asennus
ensurepipon valinnainen ja jakelijat voivat jättää sen pois
Virtuaaliympäristöstä puuttuu pip
Bootstrap-pip sen sisällä tai luo ympäristö uudelleen
venvasentaa normaalisti pipin, ellei --without-pipsitä käytetty
externally-managed-environmentnäkyy Linuxissa
Luo virtuaaliympäristö
Järjestelmän Pythonia hallinnoi tarkoituksella käyttöjärjestelmän paketinhallinta.
Vaihe 1: Vahvista, mistä Python-tulkista puuttuu pip
Älä aloita asentamalla uudelleen satunnaisia paketteja. Kysy ensin samalta tulkilta, onko pip-tiedosto olemassa.
Ikkunat
py --version
py -m pip --version
py -c "import sys; print(sys.executable)"
where python
where pip
Jos erillinen moduuli piptai pip3komento osoittaa yhteen asennukseen, kun taas pythontai osoittaa toiseen, ongelmana on tulkin yhteensopimattomuus, ei välttämättä puuttuva pip-asennus. Käytä mieluiten virallisessa pip-käyttöoppaassapython3 esitettyä moduulimuotoa .
Virhe liittyy käynnissä olevaan Python-tulkkiin; tunnista kyseinen tulkki ennen asennuksen muuttamista.
macOS:ssä sama oire voi ilmetä Päätteessä, kun python3se ratkaisee Python-asennuksen, joka ei sisällä pip-komentosarjaa.
macOS:ssä ja Linuxissa käytä , python3 -m pipjotta pip-komento on sidottu käyttämään Python 3 -tulkkiin.
Vaihe 2: Palauta pip ensurepip-komennolla
Normaalissa CPython-asennuksessa ensurepipon ensimmäinen kokeiltava korjausmenetelmä. Pythonin dokumentaatiossa sanotaan, että moduuli käynnistää pip-komennon tulkin mukana toimitetuista komponenteista eikä tarvitse internet-yhteyttä kyseiseen käynnistysvaiheeseen. Moduuli lisättiin Python 3.4:ssä.
Ensimmäinen komento asentaa tai päivittää kyseisen Python-julkaisun mukana tulevan pip-version. Viimeinen komento voi sitten päivittää pipin sen määritetystä paketti-indeksistä. Katso Pythonin ensurepipdokumentaatio ja virallinen pipin asennusopas .
Onnistuneen ensurepipsuorituksen jälkeen tulisi suorittaa version tarkistus samalla Python-tulkilla.
Vaihe 3: Jos ensurepip puuttuu, käytä Pythonin asentajalle sopivaa menetelmää
Nykyisessä Pythonin dokumentaatiossa mainitaan nimenomaisesti, että se ensurepipon valinnainen. Jos CPython-kopiosi ei sisällä sitä, Python suosittelee ottamaan yhteyttä kyseisen tulkin toimittajaan. Tämä on erityisen tärkeää Linuxissa, jossa käyttöjärjestelmä saattaa tarkoituksella pakata pip-tulkin erikseen.
Ubuntu- tai Debian-tyylinen Python-järjestelmä
Ubuntua varten virallinen pakettiarkisto tarjoaa paketin python3-pip. Tyypillinen järjestelmäpaketin asennus on:
Käytä jakelusi omaa pakettidokumentaatiota sen sijaan, että kopioisit komennon aptmuuhun kuin Debian-jakeluun. Ubuntun python3-pip-pakettisivu vahvistaa, että paketti jaetaan erikseen.
Python asennettu osoitteesta python.org
Jos virallinen python.org-asennus on vioittunut eikä ensurepipole odottamatta käytettävissä, kyseisen Python-asennuksen korjaaminen tai uudelleenasentaminen on usein puhtaampaa kuin tiedostojen manuaalinen korjaaminen. Lataa vain Pythonin viralliselta lataussivulta .
Klassinen Python for Windows -asennusohjelman näkymä havainnollistaa korjaus- tai uudelleenasennuspolkua; saatavilla olevat versiot ja asennusohjelman asetukset voivat vaihdella Pythonin julkaisun mukaan.
Entä get-pip.py?
Pip-ylläpitäjät listaavat get-pip.pytuetun asennustavan, kun pip puuttuu. Python Packaging -käyttöopas suosittelee kokeilemista ensurepipensin ja varoittaa, että se get-pip.pyei ole koordinoitavissa käyttöjärjestelmän pakettienhallinnan kanssa. Tällä varoituksella on merkitystä jakelussa hallituissa Python-asennuksissa.
Vaihe 4: Korjaa virtuaaliympäristö järjestelmän Pythonin muokkaamisen sijaan
Pythonin venvmoduuli asentaa pip:n oletuksena, ellei ympäristöä ole luotu --without-pip. Jos olemassa oleva ympäristö on kertakäyttöinen, sen uudelleenluominen on usein nopeampaa ja toistettavampaa kuin osittain rikkinäisen pakettihakemiston korjaaminen.
Virallisessa dokumentaatiossa todetaan, että sitä käytetäänvenvensurepip oletusarvoisesti pipin käynnistämiseen uusiin ympäristöihin.
Uusi virtuaaliympäristö eristää projektipaketit järjestelmätulkista ja sisältää yleensä oman pip-tiedostonsa.
Miksi tällä on merkitystä nykyaikaisissa Linux-jakeluissa
PEP 668 määrittelee EXTERNALLY-MANAGEDjakelijoiden käyttämän merkin, jolla Python-pakettien asentajille ilmoitetaan, etteivät he muokkaa järjestelmätulkin globaalia pakettikontekstia oletusarvoisesti. Jos pip raportoi ulkoisesti hallitusta ympäristöstä, se on eri ongelma kuin "pip puuttuu". Suositeltu malli on yleensä luoda virtuaaliympäristö globaalin asennuksen pakottamisen sijaan. Katso PEP 668 .
Vaihe 5: Tarkista korjaus samalla tulkilla, jota tulet itse asiassa käyttämään
Korjausten jälkeen tarkista sekä pip että kohdepaketti samasta Python-suoritettavasta tiedostosta.
Jos työskentelet IDE:ssä tai kannettavassa tietokoneessa, tarkista myös kyseisen työkalun valitsema tulkki. Yleinen virhe on asentaa paketteja yhdellä Python-päätelaitteella, kun editori suorittaa toista Pythonia tai toista virtuaaliympäristöä.
Kun IDE edelleen raportoi puuttuvia paketteja, vertaa sen Python-suoritustiedostoa onnistuneessa pip-komennossa käytettyyn tulkkiin.
Pitääkö sinun todella tuoda pip Python-koodiisi?
Yleensä ei. pipin omassa dokumentaatiossa sanotaan, että pip on komentoriviohjelma ja että sen sisäisiä API-rajapintoja ei tueta julkisena Python-API:na. Vaikka se import pipsaattaa toimia asennuksen jälkeen, sovelluskoodin ei pitäisi olla riippuvainen pipin sisäisistä ominaisuuksista.
Jos komentosarjan on todella kutsuttava pip-komentosarjaa, pip-dokumentaatio suosittelee sen käynnistämistä aliprosessina nykyisellä tulkilla:
Suorittaminen, pip install pipkun pip puuttuu: käytä ensurepipensin , käyttöjärjestelmän paketinhallintaa tai virallista bootstrap-metodia.
Käyttö sudo pipjakelun hallinnoimassa Pythonissa: tämä voi olla ristiriidassa käyttöjärjestelmän paketin omistajuuden kanssa. Suosi virtuaaliympäristöä.
PATH-ongelman korjaaminen, kun itse moduuli puuttuu: PATH hallitsee, löytääkö komentotulkki suoritettavan tiedoston; se ei asenna moduulia pipPython-tulkkiin.
Asennus väärään Python-versioon: käytä python -m pip, python3 -m pip, tai py -m pipsen sijaan, että olettaisit pelkän pipkomennon kohdistavan oikeaan tulkkiin.
Siirretyn virtuaaliympäristön uudelleenkäyttö: Pythonin venv-dokumentaatio kuvaa ympäristöjä kertakäyttöisiksi ja yleensä ei-sisäänkuljetettaviksi. Luo siirretty ympäristö uudelleen sen sijaan, että yrittäisit korjata kiinteästi koodattuja polkuja.
Lopullinen tarkistuslista
Vahvista tarkka Python-suoritettava tiedosto sys.executable.
Aja pip kyseisen tulkin läpi komennolla -m pip.
Kokeile ensurepip --upgradeennen kuin lataat toisen käynnistystyökalun.
Jos ensurepipei ole saatavilla, noudata jakelijan paketienhallintaohjeita.
Käytä virtuaaliympäristöä projektiriippuvuuksille, erityisesti ulkoisesti hallinnoiduissa Linux-asennuksissa.
Tarkista tulos samasta päätteestä, IDE:stä, muistikirjasta tai palvelun ajonaikaisesta ympäristöstä, joka suorittaa projektisi.
Useimmissa Python 3 -asennuksissa lyhintä luotettavaa korjausta python -m ensurepip --upgradeseuraa python -m pip --version, korvaamalla python3sen Unix-tyyppisissä järjestelmissä tai pyWindowsissa tilanteen mukaan. Jos tämä epäonnistuu, koska ensurepippuuttuu, pysähdy ja selvitä, kuka toimitti Python-asennuksesi, ennen kuin valitset seuraavan korjausmenetelmän.