Python-paketit ovat moduulikokoelmia (uudelleenkäytettävää koodia), jotka laajentavat ja parantavat Python-kielen ydintoimintoja. Python-kehittäjät osallistuvat viralliseen Python Package Index (PyPI) -tietovarastoon ja tuovat pakettinsa Python-yhteisön saataville avoimen lähdekoodin lisenssiehtojen mukaisesti. Python Packaging Authority (PyPA) hallinnoi arkistoa ja ylläpitää vakiomuotoisia työkaluja Python-pakettien rakentamiseen, jakeluun ja asentamiseen.

Indiana Universityn tutkimukseen tarkoitetuille supertietokoneille on jo asennettu monia kolmannen osapuolen paketteja täydentämään yleisesti käytettyjä Python-rakennelmia. Jos sinulla on ainutlaatuinen tarve kolmannen osapuolen Python-paketille, jota ei ole jo asennettu, voit käyttää pip tai setup.py asentaaksesi paketin kotihakemistoosi. Jos tiedät, että useat tutkijat ovat kiinnostuneita käyttämään Python-pakettia, jota ei ole vielä asennettu, voit pyytää, että se asennetaan koko järjestelmän laajuisena sivustopakettina.

Tällä sivulla:

  • Asenna Python-paketit henkilökohtaiseen käyttöön
    • Käyttäjäympäristön määrittäminen
    • Asenna paketti käyttämällä pip
    • Asenna paketti käyttämällä sen setup.py skriptin
  • Ymmärtää moduulien hakujärjestyksen

Asenna Python-paketteja henkilökohtaiseen käyttöön

Käyttäjäympäristön määrittäminen

Asenna Python-paketit, sinun on lisättävä Python käyttöympäristöösi. Carbonatessa Python on lisätty oletusarvoisesti käyttäjäympäristöösi. Big Red 3:ssa tai jos olet aiemmin poistanut Pythonin, käytä seuraavia ohjeita Pythonin lisäämiseksi käyttäjäympäristöösi:

  1. Tarkista, mitkä moduulit ovat tällä hetkellä ladattuina; kirjoita komentoriville:
     module list
  2. Jos Python ei ole tällä hetkellä ladattujen moduulien luettelossa, lisää se komennolla module load; esim:
    • Lisätäksesi oletusversion komentoriville kirjoita:
       module load python
    • Lisätäksesi muun kuin oletusversion:
      1. Tarkista, mitkä versiot ovat käytettävissä; kirjoita komentoriville:
         module avail python
      2. Lataa haluamasi versio; kirjoita komentoriville (korvaa version_number haluamasi versionumerolla):
         module load python/version_number
  3. Jos Python on lueteltu tällä hetkellä ladattujen moduulien joukossa, mutta haluat tai haluat käyttää toista versiota, sinun on poistettava tällä hetkellä ladattu moduuli ennen toisen version lataamista. Voit tehdä tämän yhdellä komennolla käyttämällä module switch; kirjoita esimerkiksi komentoriville (korvaa current_version tällä hetkellä ladatun python-moduulin versionumerolla ja new_version haluamasi versionumerolla):
     module switch python/current_version python/new_version

Jos haluat tehdä pysyviä muutoksia ympäristöön, muokkaa~/.modules-tiedostoa. Lisätietoja on kohdassa Käyttäjäympäristön tallentaminen IU:n tutkimuksellisella supertietokoneella kotihakemistossa olevan .modules-tiedoston avulla.

Lisätietoja moduulien käyttämisestä käyttäjäympäristön määrittämiseen on kohdassa Moduulien käyttäminen ohjelmistoympäristön hallintaan IU:n tutkimuksellisilla supertietokoneilla.

Paketin asentaminen pipin avulla

Paketinhallintatyökalu pip, joka on yksi Python Package Authorityn (PyPA) ylläpitämistä vakiotyökaluista, on suositeltava työkalu pakettien asentamiseen Python Package Index (PyPI) -tietovarastosta.

Paketin asentamiseksi PyPI-tietovarastosta (esimerkiksi foo), käytä komentoa pip install lipukkeella --user; esimerkiksi:

Vaihtoehto --user ohjaa pip:a lataamaan ja purkamaan pakettisi lähdekoodijakelun (esimerkiksi foo) Käyttäjän site-packages hakemistoon käynnissä olevalle Python-tietokannalle; esim:

 ~/.local/lib/python3.6/site-packages/foo

Python etsii moduulit automaattisesti tästä hakemistosta, joten tämän polun lisääminen ympäristömuuttujaan PYTHONPATH ei ole tarpeen.

Jos jätät --user-vaihtoehdon pois, pip yrittää asentaa pakettisi globaaliin site-packages-hakemistoon (jossa sinulla ei ole tarvittavia oikeuksia); tämän seurauksena asennus epäonnistuu.

Lisätietoja pip:n käytöstä on pipin asennus-sivulla pipin käyttöoppaassa.

Asenna paketti käyttämällä sen setup.py-skripti

Jos haluat asentaa Python-paketin muusta lähteestä kuin PyPI-tietovarastosta, voit ladata ja purkaa lähdejakelun itse ja käyttää sen setup.py-skriptiä asentaaksesi paketin käyttäjän site-packages-hakemistoon:

Vaihtoehto --user ohjaa setup.py asentamaan paketin (esimerkiksi foo) käynnissä olevan Pythonin käyttäjän site-packages hakemistoon; esimerkiksi:

 ~/.local/lib/pythonX.Y/site-packages/foo

Python hakee moduulit automaattisesti tästä hakemistosta, joten tämän polun lisääminen ympäristömuuttujaan PYTHONPATH ei ole tarpeen.

Jos jätät --user-vaihtoehdon pois, setup.py yrittää asentaa paketin globaaliin site-packages-hakemistoon (jossa sinulla ei ole tarvittavia oikeuksia); tämän seurauksena asennus epäonnistuu.

Vaihtoehtoisesti voit käyttää --home– tai --prefix-vaihtoehtoa asentaaksesi paketin eri paikkaan (jossa sinulla on tarvittavat oikeudet); esimerkiksi asentaa paketin alihakemistoon (esimerkiksi python-pkgs):

Huomautus:
Jos asennat pakettisi muuhun paikkaan kuin käyttäjän site-packages hakemistoon, sinun on lisättävä kyseisen hakemiston polku PYTHONPATH-ympäristömuuttujaan. Lisätietoja PYTHONPATH:sta on kohdassa PYTHONPATH ja python import -järjestys alla.

Lisätietoja setup.py:n käyttämisestä pakettien asentamiseen on kohdassa Python-moduulien asentaminen (Legacy-versio).

Moduulien hakujärjestyksen ymmärtäminen

Tietäminen siitä, miten Python-tulkki reagoi import-lausekkeisiin, voi auttaa sinua selvittämään, miksi jokin tietty moduuli tai paketti ei lataudu tai miksi paketin odottamaton versio latautuu, vaikka oikea versio on asennettu ja polku sen sijaintiin on lueteltu ympäristömuuttujassa PYTHONPATH.

Kun Python käynnistyy, se etsii hakemistoluettelosta sys.path löytyvistä poluista, joka määrittää tulkin hakupolun moduuleille. Muuttuja sys.path alustetaan seuraavista paikoista tässä järjestyksessä:

  1. Hakemisto, joka sisältää Python-tulkin kutsumiseen käytetyn komentosarjan (jos tulkki kutsutaan vuorovaikutteisesti tai komentosarja luetaan vakiotulostuksesta, tämä ensimmäinen kohta path jää tyhjäksi merkkijonoksi, joka ohjaa Pythonia etsimään moduulit ensin nykyisestä työhakemistosta)
  2. Kohdassa PYTHONPATH
  3. luetteloidut hakemistot
  4. Yksikössä käynnissä olevan Python-ohjelman asennuksen versiosta riippuva oma hakemistohakemistohakemistohakemistohakemistohakemistohakemistohakemistohakemistohakemistohakemistohakemistohakemistohakemistohakemistohakemistohakemistohakemistohakemistohakemistohakemistohakemistohakemisto ; esimerkiksi
     <sys.prefix>/lib/pythonX.Y/site-packages

    Tässä esimerkissä <sys.prefix> on käynnissä olevan Python-asennuksen polku; X.Y on käynnissä olevan Python-asennuksen versionumero (esimerkiksi 3.8).

Python tuo oletusarvoisesti myös site.py-moduulin alustuksen yhteydessä, mikä lisää moduulin hakupolkuun (sys.path) paikkakuntakohtaiset polut, mukaan lukien polku käyttäjän site-packages hakemistoon kotihakemistosi sisällä; esimerkiksi (X.Y on käynnissä olevan Python-asennuksen versionumero):

 ~/.local/lib/pythonX.Y/site-packages

Kun site.py lisää polkuja kohtaan sys.path, se etsii niistä polun konfigurointitiedostoja (.pth), jotka sisältävät lisähakemistoja, jotka lisätään kohtaan sys.path. Jos hakemisto sisältää useita .pth-tiedostoja, site.py käsittelee ne aakkosjärjestyksessä.

Jotkut .pth-tiedostot sisältävät kuitenkin upotettuja komentoja, jotka lisäävät hakemistomerkintöjä moduulin hakupolun alkuun (vakiokirjastopolun edelle). Tämän seurauksena moduuli jostakin lisätyistä hakemistoista latautuu vakiokirjastohakemistosta löytyvän samannimisen moduulin sijasta. Tämä voi olla ei-toivottua ja hämmentävää käytöstä, ellei tällaista korvaamista ole tarkoitettu.

Huomautus:

Jos import-pyyntöjäsi häiritsevät jatkuvasti site.py– ja .pth-tiedostot, kokeile kutsua Python-tulkkia -S:llä (isolla S-kirjaimella):

 python -S

Tämä kytkee pois päältä site.py:n automaattisen maahantuonnin site.py:stä ja estää näin sitä manipuloimasta sys.path:ää. Se estää kuitenkin myös site.py:tä lisäämästä käyttäjän site-packages hakemistoa sys.path:een. Jos haluat tuoda site.py lisäämättä käyttäjän site-packages hakemistoa sys.path:iin, kutsu Pythonia valinnalla -s (pieni ”s”):

 python -s

Näyttääksesi, mitkä hakemistot Python skannaa antaessasi import-komentoja, kirjoita komentorivillä:

 python -c "import sys; print ('\n'.join(sys.path))"

Vaihtoehtoisesti käynnistä Python interaktiivisessa tilassa ja kutsu sitten samat komennot tässä järjestyksessä (>>> on Pythonin ensisijainen kehote):

 >>>import sys >>>print ('\n'.join(sys.path))
Huomautus:
Muuttuja sys.path on vain muokattavissa oleva merkkijonoluettelo, jota voit muokata kuten mitä tahansa muitakin Pythonin luetteloita. Vältä muokkaamasta listan ensimmäistä kohtaa (path), koska monet paketit olettavat sen viittaavan hakemistoon, joka sisältää Python-tulkin kutsumiseen käytettävän skriptin.

Seuraavat asiakirjat

Vastaa

Sähköpostiosoitettasi ei julkaista.