Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Package

Cosa sono e come sono organizzati i package in Python, ed in che modo possono essere utilizzati per distribuire moduli e librerie personalizzate.
Cosa sono e come sono organizzati i package in Python, ed in che modo possono essere utilizzati per distribuire moduli e librerie personalizzate.
Link copiato negli appunti

Oltre ai moduli, Python offre un ulteriore livello di organizzazione: i package. Un package è una raccolta di moduli, che in genere corrisponde alla directory che li contiene. Prima di poter importare i moduli da una directory, è necessario aggiungere un file vuoto chiamato __init__.py all'interno della directory. Vediamo ad esempio la struttura che potrebbe avere un ipotetico progetto Python:

ProgettoPython/
 |- main.py
 `- progetto/
     |- __init__.py
     |- core.py
     |- utils.py
     |- gui/
     |   |- __init__.py
     |   |- widgets.py
     |   `- windows.py
     `- test/
         |- __init__.py
         |- test_core.py
         |- test_utils.py
         |- test_widgets.py
         `- test_windows.py

La directory che contiene il nostro progetto si chiama ProgettoPython e contiene un file main.py e il package progetto. La directory progetto contiene un file __init__.py che la rende un package importabile da Python, oltre ai file core.py e utils.py e le sottocartelle gui e test. Le sottocartelle contengono a loro volta due file __init__.py che le rendono parte del package, e diversi altri file .py.

In questo caso la root (radice) del package è progetto, e per poterla importare dobbiamo garantire che la cartella che lo contiene (cioè ProgettoPython) sia inclusa in sys.path. Possiamo farlo sia lanciando python3 direttamente dalla cartella ProgettoPython (la cartella corrente viene aggiunta automaticamente a sys.path), oppure aggiungendo il percorso completo della directory (es. /home/ezio/ProgettoPython) alla variabile di ambiente PYTHONPATH.

Possiamo ora identificare i package e sub-package all'intero degli import, separandoli con un .. Ad esempio, per importare utils possiamo scrivere import progetto.utils o from progetto import utils. Se vogliamo importare una funzione da utils, possiamo usare from progetto.utils import funzione. Se vogliamo importare un widget da widgets, possiamo usare from progetto.gui.widgets import widget.


Ti consigliamo anche