Pachetele Python sunt colecții de module (cod reutilizabil) care extind și îmbunătățesc funcționalitatea limbajului Python de bază. Dezvoltatorii Python contribuie la depozitul oficial Python Package Index (PyPI), punându-și pachetele la dispoziția comunității Python în condiții de licență open source. Python Packaging Authority (PyPA) gestionează depozitul și menține un set standard de instrumente pentru construirea, distribuirea și instalarea pachetelor Python.
Pe supercomputerele de cercetare ale Universității Indiana, multe pachete de la terți sunt deja instalate pentru a completa compilările Python utilizate în mod obișnuit. Dacă aveți o nevoie unică de un pachet Python de la terți care nu este deja instalat, puteți utiliza pip
sau setup.py
pentru a instala pachetul în directorul dvs. personal. Dacă știți că mai mulți cercetători sunt interesați să utilizeze un pachet Python care nu este deja instalat, puteți solicita ca acesta să fie instalat ca un pachet de site la nivelul întregului sistem.
În această pagină:
- Instalați pachete Python pentru uz personal
- Pregătiți-vă mediul de utilizator
- Instalați un pachet folosind
pip
- Instalați un pachet folosind
setup.py
sa script
- Înțelegeți ordinea de căutare a modulelor
Instalați pachete Python pentru uz personal
Configurați-vă mediul de utilizator
Pentru a instala pachete Python, trebuie să aveți Python adăugat în mediul dumneavoastră de utilizator. Pe Carbonate, Python este adăugat în mediul dumneavoastră de utilizator în mod implicit. Pe Big Red 3, sau dacă ați eliminat anterior Python, utilizați următoarele instrucțiuni pentru a adăuga Python în mediul dumneavoastră de utilizator:
- Verificați ce module sunt încărcate în prezent; în linia de comandă, introduceți:
module list
- Dacă Python nu se află printre modulele încărcate în prezent, utilizați comanda
module load
pentru a-l adăuga; de exemplu:- Pentru a adăuga versiunea implicită, pe linia de comandă, introduceți:
module load python
- Pentru a adăuga o versiune care nu este cea implicită:
- Verificați ce versiuni sunt disponibile; pe linia de comandă, introduceți:
module avail python
- Încărcați versiunea preferată; pe linia de comandă, introduceți (înlocuiți
version_number
cu numărul versiunii preferate):module load python/version_number
- Verificați ce versiuni sunt disponibile; pe linia de comandă, introduceți:
- Pentru a adăuga versiunea implicită, pe linia de comandă, introduceți:
- Dacă Python este listat printre modulele încărcate în prezent, dar preferați sau trebuie să utilizați o altă versiune, trebuie să eliminați modulul încărcat în prezent înainte de a încărca cealaltă versiune. Pentru a face acest lucru cu o singură comandă, utilizați
module switch
; de exemplu, pe linia de comandă, introduceți (înlocuițicurrent_version
cu numărul de versiune al modululuipython
încărcat în prezent șinew_version
cu numărul versiunii preferate):module switch python/current_version python/new_version
Pentru a face modificări permanente în mediul dumneavoastră, editați fișierul~/.modules
. Pentru mai multe informații, consultați Use a .modules file in your home directory to save your user environment on an IU research supercomputer.
Pentru mai multe informații despre utilizarea modulelor pentru a vă configura mediul de utilizator, consultați Use Modules to manage your software environment on IU’s research supercomputers.
Instalați un pachet utilizând pip
Strumentul de gestionare a pachetelor pip
, unul dintre instrumentele standard întreținute de Python Package Authority (PyPA), este instrumentul recomandat pentru instalarea pachetelor din depozitul Python Package Index (PyPI).
Pentru a instala un pachet din depozitul PyPI (de exemplu, foo
), utilizați comanda pip install
cu indicatorul --user
; de exemplu:
Opțiunea --user
direcționează pip
să descarce și să despacheteze distribuția sursă pentru pachetul dvs. (de exemplu, foo
) în directorul site-packages
al utilizatorului site-packages
pentru Python care rulează; de exemplu:
~/.local/lib/python3.6/site-packages/foo
Python caută automat în acest director pentru module, astfel încât nu este necesară adăugarea acestei căi la variabila de mediu PYTHONPATH.
Dacă omiteți opțiunea --user
, pip
va încerca să vă instaleze pachetul în directorul global site-packages
(unde nu aveți permisiunile necesare); ca urmare, instalarea va eșua.
Pentru mai multe informații despre utilizarea pip
, consultați pagina pip install din Ghidul utilizatorului pip.
Instalați un pachet utilizând configurația acestuia.py script
Pentru a instala un pachet Python dintr-o altă sursă decât depozitul PyPI, puteți descărca și despacheta singur distribuția sursă, apoi puteți utiliza scriptul său setup.py
pentru a instala pachetul în directorul site-packages
al utilizatorului:
Opțiunea --user
direcționează setup.py
să instaleze pachetul (de exemplu, foo
) în directorul user site-packages
pentru Python în curs de execuție; de exemplu:
~/.local/lib/pythonX.Y/site-packages/foo
Python caută automat în acest director pentru module, astfel încât nu este necesară preaprecierea acestei căi la variabila de mediu PYTHONPATH.
Dacă omiteți opțiunea --user
, setup.py
va încerca să instaleze pachetul în directorul global site-packages
(unde nu aveți permisiunile necesare); ca urmare, instalarea va eșua.
În mod alternativ, puteți utiliza opțiunea --home
sau --prefix
pentru a vă instala pachetul într-o locație diferită (unde aveți permisiunile necesare); de exemplu, pentru a vă instala pachetul într-un subdirectoriu (de exemplu, python-pkgs
):
site-packages
al utilizatorului, va trebui să adăugați calea către acel director la variabila de mediu PYTHONPATH. Pentru mai multe informații despre PYTHONPATH, consultați PYTHONPATH și ordinea python import
de mai jos. Pentru mai multe informații despre utilizarea setup.py
pentru a instala pachete, consultați Instalarea modulelor Python (versiunea legacy).
Înțelegeți ordinea de căutare a modulelor
Cunoașterea modului în care interpretorul Python răspunde la declarațiile import
vă poate ajuta să determinați de ce un anumit modul sau pachet nu se încarcă sau de ce se încarcă o versiune neașteptată a unui pachet, chiar dacă versiunea corectă este instalată și calea către locația sa este listată în variabila de mediu PYTHONPATH.
Când Python se lansează, el caută căile de acces găsite în sys.path
, o listă de directoare care determină calea de căutare a modulelor de către interpretor. Variabila sys.path
este inițializată din următoarele locații, în această ordine:
- Directorul care conține scriptul utilizat pentru a invoca interpretorul Python (dacă interpretorul este invocat interactiv sau scriptul este citit de la intrarea standard, acest prim element,
path
, rămâne un șir gol, care direcționează Python să caute mai întâi modulele din directorul de lucru curent) - Directoarele listate în PYTHONPATH
- Directorul
site-packages
specific versiunii pentru instalația Python care rulează; de exemplu:<sys.prefix>/lib/pythonX.Y/site-packages
În acest exemplu,
<sys.prefix>
este calea către instalația Python în curs de execuție;X.Y
este numărul versiunii (de exemplu,3.8
) a instalației Python în curs de execuție.
În mod implicit, Python importă, de asemenea, modulul site.py
la inițializare, care adaugă căile specifice site-ului la calea de căutare a modulelor (sys.path
), inclusiv calea către directorul site-packages
al utilizatorului site-packages
din cadrul directorului dvs. personal; de exemplu (X.Y
va fi numărul de versiune al instalației Python în curs de execuție):
~/.local/lib/pythonX.Y/site-packages
~/.local/lib/pythonX.Y/site-packages
În timp ce site.py
adaugă căi de acces la sys.path
, acesta le scanează pentru fișierele de configurare a căilor de acces (.pth
), care conțin directoare suplimentare care sunt adăugate la sys.path
. Dacă un director conține mai multe fișiere .pth
, site.py
le procesează în ordine alfabetică.
Cu toate acestea, unele fișiere .pth
conțin comenzi încorporate care inserează intrări de directoare la începutul căii de căutare a modulelor (înaintea căii standard a bibliotecii). Ca urmare, un modul din unul dintre directoarele inserate se va încărca în locul modulului cu același nume din directorul bibliotecii standard. Acesta poate fi un comportament nedorit și derutant, cu excepția cazului în care se intenționează o astfel de înlocuire.
Dacă solicitările dvs. de import
sunt în mod constant perturbate de fișierele site.py
și .pth
, încercați să invocați interpretorul Python cu -S
(S majusculă):
python -S
Acest lucru dezactivează importul automat al site.py
și, ca urmare, îl împiedică să manipuleze sys.path
. Cu toate acestea, împiedică, de asemenea, site.py
să adauge directorul site-packages
al utilizatorului site-packages
în sys.path
. Pentru a importa site.py
fără a adăuga directorul dvs. de utilizator site-packages
la sys.path
, invocați Python cu opțiunea -s
(s minuscul):
python -s
Pentru a vedea ce directoare scanează Python atunci când emiteți comenzi import
, pe linia de comandă, introduceți:
python -c "import sys; print ('\n'.join(sys.path))"
Alternativ, lansați Python în modul interactiv și apoi apelați aceleași comenzi în această ordine (>>>
este promptul principal Python):
>>>import sys >>>print ('\n'.join(sys.path))
sys.path
este doar o listă editabilă de șiruri de caractere pe care o puteți edita ca orice altă listă Python. Evitați să editați primul element din listă (path
), deoarece multe pachete presupun că acesta se referă la directorul care conține scriptul utilizat pentru a invoca interpretorul Python. Documente conexe
.