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ů:
- Zkontrolujte, které moduly jsou aktuálně načteny; na příkazovém řádku zadejte:
module list
- 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:
- Zkontrolujte, které verze jsou k dispozici; na příkazovém řádku zadejte:
module avail python
- Načíst preferovanou verzi; na příkazovém řádku zadejte (nahraďte
version_number
číslem preferované verze):module load python/version_number
- Zkontrolujte, které verze jsou k dispozici; na příkazovém řádku zadejte:
- Chcete-li přidat výchozí verzi, zadejte do příkazového řádku:
- 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ďtecurrent_version
číslem verze aktuálně načteného modulupython
anew_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
):
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í:
- 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) - Adresáře uvedené v PYTHONPATH
- 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říklad3.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.
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))
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
.