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:
- Tarkista, mitkä moduulit ovat tällä hetkellä ladattuina; kirjoita komentoriville:
module list
- 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:
- Tarkista, mitkä versiot ovat käytettävissä; kirjoita komentoriville:
module avail python
- Lataa haluamasi versio; kirjoita komentoriville (korvaa
version_number
haluamasi versionumerolla):module load python/version_number
- Tarkista, mitkä versiot ovat käytettävissä; kirjoita komentoriville:
- Lisätäksesi oletusversion komentoriville kirjoita:
- 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 (korvaacurrent_version
tällä hetkellä ladatunpython
-moduulin versionumerolla janew_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
):
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ä:
- 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) - Kohdassa PYTHONPATH
- luetteloidut hakemistot
- 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 (esimerkiksi3.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.
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))
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.