Cum se utilizează pachetele Python

Pachetele Python vă permit să descompuneți sistemele mari și să vă organizați modulele într-un mod coerent pe care să-l puteți folosi și reutilizați în mod eficient de dvs. și de alți utilizatori. Motto-ul lui Python de "Baterii incluse" înseamnă că acesta este preîncărcat cu o mulțime de pachete utile în biblioteca standard. 

Dar există și multe pachete uimitoare de la terțe părți pe care le puteți profita. In acest tutorial vei invata tot ce trebuie sa stiti despre ce pachete sunt exact, cum de a importa module din pachete, explorând pachetul încorporat în biblioteca standard de Python, și instalarea pachetelor de terțe părți.

Care sunt pachetele??

Înainte de a putea vorbi despre pachete, hai să vorbim despre module. Modulele sunt fișierele sursă cu extensia * .py unde tu (și ceilalți) puneți funcțiile și clasele care cuprind programul tău. Pachetele reprezintă manifestarea conceptului Python pentru spațiul de nume ierarhic. Pentru a cita din zenul lui Python: 

"Spațiile de nume sunt o idee grozavă - să facem mai multe din ele!"

Pentru a vizualiza întregul Zen din Python, tastați importă asta într-o sesiune interactivă Python:

importă acest Zen de Python, de Tim Peters Frumos este mai bun decât urât. Explicația este mai bună decât implicită. Simplu este mai bun decât complex. Complexul este mai bun decât complicat. Platul este mai bun decât imbricate. Rar este mai bine decât dens. Capacitatea de citire. Cazurile speciale nu sunt suficient de speciale pentru a încălca regulile. Deși practicitatea bate puritatea. Erori nu ar trebui să treacă în tăcere. Cu excepția cazului în care este explicit tăcut. În fața ambiguității, refuzați ispita să ghiciți. Ar trebui să existe una - și, de preferință, o singură cale - evitată. Deși poate că nu este evident acest lucru la început dacă nu sunteți olandeză. Acum este mai bine decât niciodată. Deși niciodată nu este adesea mai bună decât * dreapta * acum. Dacă implementarea este greu de explicat, este o idee proastă. Dacă implementarea este ușor de explicat, poate fi o idee bună. Namespace-urile reprezintă o idee minunată - să facem mai multe dintre acestea!

Spațiul de nume ajută la organizarea codului și prevenirea conflictelor de numire. Acest lucru este esențial atunci când mai mulți oameni lucrează împreună sau când folosesc pachete dezvoltate de alte persoane.

În timp ce pachetele reprezintă o ierarhie a sub-pachetelor și modulelor, care sunt fișiere, ierarhia nu are nevoie de sistem de fișiere pe baza căruia pachetele și subpachetele sunt directoare și subdirectoare. Este mult mai flexibil decât asta.

Pachetul de exemple

Să aruncăm o privire la un pachet numit "posibil". Nu este un pachet din biblioteca standard. Veți vedea mai târziu cum puteți găsi și instala pachete terță parte. Acum, hai să verificăm structura fișierului directorului. 

Pachetele vor fi instalate în mod obișnuit în directorul de pachete de site-uri al interpretului Python, care va fi localizat undeva (în funcție de versiune, OS și distribuție) sub "lib". Pe Mac, pentru Python 2.7, acesta va fi localizat în "/lib/python2.7/site-packages ". Iată cum este organizat pachetul" anus ":

tree ansiblu -L 1 ansiblu ├── __init__.py ├── cli ├── Compat ├── config ├── constants.py ├── Erori ├── executor ├── galaxiei ├── inventar ├── module_utils ├── module ├── parsare ├── PlayBook ├── plugins ├── șablon ├── utils └── RVAuri 15 directoare, 2 fișiere 

Există două module și 15 directoare. Fiecare director este un subpachet al pachetului principal posibil. Dacă privim în interiorul directorului ansible / utils, putem vedea că acesta conține module suplimentare și chiar un singur sub-pachet:

tree ansiblu / utils -L 1 ansiblu / utils ├── __init__.py ├── boolean.py ├── cmd_functions.py ├── color.py ├── debug.py ├── display.py ├── criptați PY ├── hashing.py ├── listify.py ├── module_docs.py ├── module_docs_fragments ├── path.py ├── shlex.py ├── unicode.py └── vars.py 1 director , 14 fișiere

Calea de căutare

Atunci când importați un modul, Python va trece printr-un algoritm de căutare bazat pe calea de căutare, care este o listă de directoare pentru a începe căutarea. Calea de căutare este o listă de directoare disponibile prin sys.path, și puteți să o manipulați dinamic (să adăugați, să eliminați sau să mutați în jurul elementelor din calea de căutare). Directorul de site-uri cu pachete este întotdeauna acolo.

Pentru a importa modul path.py de la ansible / utils, va trebui să utilizați următoarea comandă:

importul ansible.utils.path

Dacă doriți, de asemenea, să utilizați modulul os.oath standard, veți folosi următoarea comandă:

import os.path

Acum puteți utiliza unul sau ambele module de cale fără conflicte datorită spațiului de nume al diferenței de care aparțin.

Explorarea Bibliotecii Standard

Biblioteca standard are multe pachete. Merită să o explorați ori de câte ori aveți nevoie pentru a îndeplini o sarcină și nu sunteți sigur cum. Există o probabilitate foarte mare ca pentru orice sarcină scop general cum ar fi matematica, integrarea coajă, integrarea sistemului de operare, manipulare șir, crearea de rețele și formate de fișier comune, există un bine conceput, bine-performante și pachetul de bine testate în biblioteca standard. 

Puteți avea încredere în pachetele de biblioteci standard, deoarece este o afacere mare pentru a intra în biblioteca standard. Fie pachetul a fost proiectat de dezvoltatorii de bază ai Python, fie a fost revizuit puternic și adesea folosit în mod intens în domeniu ca o bibliotecă de la o terță parte înainte de a fi inclus în biblioteca standard.

Iată toate pachetele din biblioteca standard organizată pe teme.

PyPI

Biblioteca standard este minunată, dar de obicei vor exista câteva funcționalități speciale care nu sunt standard. Nu înseamnă că trebuie să o scrieți de la zero. Python are o comunitate vibrantă și activă care dezvoltă și distribuie în mod liber o mulțime de cod. Introduceți PyPI - indexul pachetului Python. PyPI găzduiește toate pachetele disponibile publicului și oferă un magazin unic pentru navigarea prin ele.

Navigarea în PyPI

PyPI organizează pachetele într-un index care poate fi navigat. Puteți căuta și a căuta după subiect, mediu, cadru, dezvoltare, statutul, publicul-țintă, de licență, limbaj natural, limbaj de programare (da, exista pachete Python care suportă multe limbaje de programare), și sistemul de operare. 

Există, de asemenea, o distincție între pachetele Python 2 și Python 3 și puteți vedea cât de popular este un pachet prin numărul de descărcări recente. De exemplu, pachetul posibil este disponibil pe PyPI, iar aici sunt metadatele sale:

Descărcări (toate versiunile): 5528 download-uri în ultima zi 72037 download-uri în ultima săptămână 289967 de descărcări în ultima lună Autor: ansiblu, Inc. Acasă Pagina: http://ansible.com/ Bug Tracker: http: // GitHub. com / ansiblu / ansiblu / Licență: GPLv3 Categorii Statut dezvoltare :: 5 - Productie / Mediu Stabil :: Consola pentru dezvoltatori :: Publicul țintă Publicul țintă :: Tehnologia informației Publicul țintă :: Administratorii de sistem de licență :: OSI aprobate :: GNU General public v3 Licență sau mai târziu (GPLv3 +) Limba natural :: English Sistem de operare :: POSIX limbajul de programare Python :: :: 2.6 Limbaj de programare :: Python :: 2.7 Topic :: System :: instalare / configurare Topic :: Administrare sistem :: Sisteme subiect :: pachet de Utilități Index Proprietar: James.Laska, Jimi, ansiblu Pachetul Index Maintainer: mpdehaan, bursuc DOAP înregistrare: ansiblu-2.0.0.2.xml 

Instalarea pachetelor

Există două moduri de a instala pachete din PyPI. Puteți descărca pachetul și apoi executa instalare python setup.py. Dar modul modern este de a folosi pip, setul de instrumente și roata. Pip vine de la Pip Installs Pachete (da, este unul din acele acronime) și este capătul dvs. pentru instalare. Dacă aveți Python 2> = 2.7.9 sau Python 3> = 3.4 instalat de la python.org, veți avea deja pip și setuptools, dar va trebui să faceți upgrade la ultima versiune: pip instalare -U pip setuptools sau instalare python -m pip -U pip setuptools pe Windows.

Utilizați pip pentru a instala roata: pip roata de instalare.

Dacă utilizați o versiune anterioară de Python, luați în considerare actualizarea. Dacă nu reușiți, va trebui să instalați pip, instrumente de configurare și roată pe cont propriu. Verificați instrucțiunile.

Pachetele Python sunt întotdeauna instalate într-un mediu. O practică obișnuită pe care nu o voi acoperi aici este utilizarea mediilor virtuale pentru a gestiona mai multe instalații independente de Python cu diferiți interpreți și / sau seturi diferite de pachete instalate.

Cele mai bune practici

Autoritatea de ambalare Python oferă o mulțime de îndrumări cu privire la cele mai bune practici în ceea ce privește ambalarea. Acest lucru este important deoarece este un domeniu de dezvoltare activă și recomandări evoluează rapid.

De asemenea, dacă doriți să faceți ceva special cum ar fi instalarea pachetelor din depozite alternative în loc de PyPI sau folosind pip într-un mod mai sofisticat, veți găsi discuții minunate și sfaturi practice. 

Concluzie

Când sunteți un începător în Python, învățați limba de bază și jucați-vă cu ea. Foarte curând veți descoperi biblioteca standard și, pe măsură ce câștigați mai multă experiență, veți beneficia din ce în ce mai mult de bogăția sa. 

Următoarea etapă a evoluției dvs. în calitate de Pythonista este aceea de a încorpora uriașul awesomeness pe care comunitatea Python a pus-o pe PyPI în sistemele dvs. Pachetele ca unitate de implementare a codului Python reutilizabile permit acest ecosistem.

Cod