Balíčky Pythonu jsou sbírky modulů (opakovaně použitelného kódu), které rozšiřují a vylepšují funkce jádra jazyka Python. Vývojáři Pythonu přispívají do oficiálního repozitáře Python Package Index (PyPI) a zpřístupňují své balíčky komunitě Pythonu za podmínek open source licence. Úložiště spravuje organizace Python Packaging Authority (PyPA), která udržuje standardní sadu nástrojů pro sestavování, distribuci a instalaci balíčků Pythonu.

Na výzkumných superpočítačích Indiana University je již nainstalováno mnoho balíčků třetích stran, které doplňují běžně používaná sestavení Pythonu. Pokud máte jedinečnou potřebu balíčku Pythonu třetí strany, který ještě není nainstalován, můžete pomocí pip nebo setup.py nainstalovat balíček do svého domovského adresáře. Pokud víte, že o použití balíčku Python, který ještě není nainstalován, má zájem více výzkumných pracovníků, můžete požádat o jeho instalaci jako balíčku pro celý systém.

Na této stránce:

  • Instalace balíčků Python pro osobní použití
    • Nastavení uživatelského prostředí
    • Instalace balíčku pomocí pip
    • Instalace balíčku pomocí jeho setup.py. skriptu
  • Pochopit pořadí vyhledávání modulů

Instalace balíčků Python pro osobní použití

Nastavení uživatelského prostředí

K instalaci balíčků Python, musíte mít Python přidaný do svého uživatelského prostředí. V systému Carbonate je Python do vašeho uživatelského prostředí přidán ve výchozím nastavení. V systému Big Red 3, nebo pokud jste Python dříve odstranili, přidejte Python do svého uživatelského prostředí podle následujících pokynů:

  1. Zkontrolujte, které moduly jsou aktuálně načteny; na příkazovém řádku zadejte:
     module list
  2. Pokud Python není v seznamu aktuálně načtených modulů, přidejte jej pomocí příkazu module load; např:
    • Chcete-li přidat výchozí verzi, zadejte do příkazového řádku:
       module load python
    • Chcete-li přidat jinou než výchozí verzi:
      1. Zkontrolujte, které verze jsou k dispozici; na příkazovém řádku zadejte:
         module avail python
      2. Načíst preferovanou verzi; na příkazovém řádku zadejte (nahraďte version_number číslem preferované verze):
         module load python/version_number
  3. Pokud je Python uveden mezi aktuálně načtenými moduly, ale vy preferujete nebo potřebujete používat jinou verzi, musíte před načtením jiné verze odebrat aktuálně načtený modul. Chcete-li to provést jedním příkazem, použijte module switch; na příkazovém řádku zadejte například (nahraďte current_version číslem verze aktuálně načteného modulu python a new_version číslem preferované verze):
     module switch python/current_version python/new_version

Chcete-li provést trvalé změny prostředí, upravte soubor~/.modules. Další informace naleznete v části Použití souboru .modules v domovském adresáři pro uložení uživatelského prostředí na výzkumném superpočítači IU.

Další informace o použití modulů pro konfiguraci uživatelského prostředí naleznete v části Použití modulů pro správu softwarového prostředí na výzkumných superpočítačích IU.

Instalace balíčku pomocí pip

Pro instalaci balíčků z repozitáře Python Package Index (PyPI) je doporučeným nástrojem pip nástroj pro správu balíčků, jeden ze standardních nástrojů spravovaných organizací Python Package Authority (PyPA).

Chcete-li nainstalovat balíček z úložiště PyPI (například foo), použijte příkaz pip install s příznakem --user; například:

Příkaz --user nasměruje pip ke stažení a rozbalení zdrojové distribuce vašeho balíčku (například foo) do uživatelského adresáře site-packages pro běžící Python; např:

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

Python automaticky vyhledává moduly v tomto adresáři, takže předřazení této cesty proměnné prostředí PYTHONPATH není nutné.

Pokud vynecháte volbu --user, pip se pokusí nainstalovat váš balíček do globálního adresáře site-packages (kde nemáte potřebná oprávnění); v důsledku toho instalace selže.

Více informací o použití volby pip najdete na stránce pip install v uživatelské příručce pip.

Instalace balíčku pomocí jeho nastavení.py skript

Chcete-li nainstalovat balíček Python z jiného zdroje než z úložiště PyPI, můžete si sami stáhnout a rozbalit zdrojovou distribuci a poté pomocí jejího skriptu setup.py nainstalovat balíček do uživatelského adresáře site-packages:

Volba --user nařídí, aby skript setup.py nainstaloval balíček (například foo) do uživatelského adresáře site-packages pro spuštěný Python; například:

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

Python automaticky vyhledává moduly v tomto adresáři, takže předřazení této cesty proměnné prostředí PYTHONPATH není nutné.

Pokud vynecháte volbu --user, setup.py se pokusí nainstalovat balíček do globálního adresáře site-packages (kde nemáte potřebná práva); v důsledku toho instalace selže.

Případně můžete použít volbu --home nebo --prefix pro instalaci balíčku do jiného umístění (kde máte potřebná oprávnění); například pro instalaci balíčku do podadresáře (například python-pkgs):

Poznámka:
Pokud svůj balíček nainstalujete do jiného umístění než do uživatelského adresáře site-packages, budete muset cestu k tomuto adresáři předřadit proměnné prostředí PYTHONPATH. Další informace o proměnné PYTHONPATH naleznete níže v části PYTHONPATH a pořadí python import.

Více informací o použití setup.py k instalaci balíčků najdete v části Instalace modulů Pythonu (starší verze).

Pochopení pořadí vyhledávání modulů

Znalost toho, jak interpret jazyka Python reaguje na příkazy import, vám může pomoci zjistit, proč se určitý modul nebo balíček nenačítá nebo proč se načítá neočekávaná verze balíčku, přestože je nainstalována správná verze a cesta k jejímu umístění je uvedena v proměnné prostředí PYTHONPATH.

Při spuštění Pythonu prohledává cesty nalezené v sys.path, seznamu adresářů, který určuje cestu interpretu k vyhledávání modulů. Proměnná sys.path se inicializuje z následujících míst v tomto pořadí:

  1. Adresář obsahující skript použitý k vyvolání interpretu Pythonu (pokud je interpret vyvolán interaktivně nebo je skript čten ze standardního vstupu, zůstává tato první položka, path, prázdným řetězcem, který Pythonu přikazuje, aby nejprve prohledal moduly v aktuálním pracovním adresáři)
  2. Adresáře uvedené v PYTHONPATH
  3. Adresář site-packages specifický pro verzi spuštěné instalace Pythonu; např:
     <sys.prefix>/lib/pythonX.Y/site-packages

    V tomto příkladu je <sys.prefix> cesta k běžící instalaci Pythonu; X.Y je číslo verze (například 3.8) běžící instalace Pythonu.

Ve výchozím nastavení Python při inicializaci importuje také modul site.py, který do vyhledávací cesty modulu (sys.path) přidá cesty specifické pro danou lokalitu, včetně cesty k uživatelskému adresáři site-packages v rámci vašeho domovského adresáře; například (X.Y bude číslo verze běžící instalace Pythonu):

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

Když site.py přidá cesty do sys.path, prohledá je na konfigurační soubory cest (.pth), které obsahují další adresáře, jež se přidají do sys.path. Pokud adresář obsahuje více souborů .pth, site.py je zpracovává v abecedním pořadí.

Některé soubory .pth však obsahují vložené příkazy, které vkládají položky adresářů na začátek vyhledávací cesty modulu (před standardní cestu knihovny). V důsledku toho se modul z jednoho z vložených adresářů načte místo modulu stejného jména z adresáře standardní knihovny. To může být nežádoucí a matoucí chování, pokud takové nahrazení není zamýšleno.

Poznámka:

Pokud jsou vaše požadavky import trvale narušovány soubory site.py a .pth, zkuste vyvolat interpret Pythonu pomocí -S (velké písmeno „S“):

 python -S

Tím se zakáže automatický import site.py a v důsledku toho se zabrání manipulaci s sys.path. Zabrání však také tomu, aby site.py přidal váš uživatelský adresář site-packages do adresáře sys.path. Chcete-li importovat site.py bez přidání vašeho uživatelského adresáře site-packages do sys.path, zavolejte Python s volbou -s (malé písmeno „s“):

 python -s

Chcete-li zjistit, které adresáře Python prohledává při zadávání příkazů import, zadejte na příkazovém řádku příkaz:

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

Případně spusťte Python v interaktivním režimu a poté vyvolejte stejné příkazy v tomto pořadí (>>> je primární výzva Pythonu):

 >>>import sys >>>print ('\n'.join(sys.path))
Poznámka:
Proměnná sys.path je pouze editovatelný seznam řetězců, který můžete upravovat jako jakýkoli jiný seznam Pythonu. Vyhněte se úpravě první položky v seznamu (path), protože mnoho balíků předpokládá, že odkazuje na adresář obsahující skript použitý k vyvolání interpretu jazyka Python.

Související dokumenty

.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.