Vai al menù, saltando i contenuti (access key "m")
Python. Librerie
I moduli
# carico il modulo pippo import pippo # richiamo le funzioni fornite dal modulo pippo pippo.funzione1() pippo.funzione2() ... # definire un alias per la funzione2 del modulo pippo, # per poterla richiamare più velocemente ciao = pippo.funzione2 ciao()
I package
I package sono equivalenti a delle directory che raggruppano dei moduli. Una libreria molto complicata è formata ragionevolmente da molti moduli, raggruppati in un unico package che a sua volta è diviso in vari subpackage.
# Si importa il package scipy import scipy scipy.integrate.quad() # Oppure si importa il singolo modulo import scipy.integrate scipy.integrate.quad() # Oppure si importa il singolo modulo in modo da poterlo usare # senza il prefisso del pacchetto from scipy import integrate integrate.quad()
Compilare pacchetti
Per compilare pacchetti o singoli moduli per Python è spesso necessario un compilatore C++. Io preferisco MinGW che è già compreso nelle librerie Qt e che fornisce anche il comando make, chiamato mingw32-make.
Fare molta attenzione che la PATH sia più libera possibile. Spesso accade che un file di libreria venga trovato prima in qualche altra cartella perché un programma installato sul vostro pc è stato scritto con quelle librerie. Mi è capitato per esempio quando cercavo di compilare le PyQt. PyQt ha bisogno delle librerie Qt e tra i tanti file anche il file QtCore4.dll. Nella mia PATH era però compresa anche la directory degli eseguibili di MiKTeX, all'interno della quale si trovava una copia (vecchia) di QtCore4.dll! A causa dell'ordine della PATH, a causa del funzionamento dello script qtdirs.exe e a causa del fatto che non avevo fatto girare il file qtenv.bat che avrebbe rimesso le cose a posto prima della compilazione, la configurazione andava in errore perché non veniva trovata una funzione nella libreria (la funzione era presente solo nella nuova versione che però non veniva caricata).
Le variabili d'ambiente QTDIRS, QMAKESPEC, ecc... sono oramai obsolete e non dovrebbero essere più settate manualmente.
(check PATH and few other things) python configure.py (sometimes you have to specify some options) mingw32-make mingw32-make install
Modules e Packages
module: la minima entità di codice riusabile in Python. Se contenuto in un unico file .py viene detto a volte pure module.
package: un modulo che contiene altri moduli. Praticamente consiste di una directory contenente diversi .py corrispondenti a diversi moduli. La directory e il suo contenuto vengono riconosciuti come un package nel momento che la cartella comprende anche un file __init__.py (solitamente vuoto). Il nome della directory corrisponde al nome del pacchetto.
import package.module
from package import module
Fare semplicemente import package
corrisponde a caricare il solo
file __init__.py, che solitamente è vuoto. Però lo si può usare per fare qualcosa.
L'__init__.py è fondamentale per organizzare il materiale in un progetto realizzato
con Python. Spesso vorrete organizzare il vostro sorgente in cartelle. Per esempio
le classi dell'interfaccia grafica, solitamente generate in automatico, si mettono
in una cartella chiamata ui
(user interface). La presenza di un file
__init__.py dentro la cartella ui permette di poter richiamare l'interfaccia grafica
nel file principale del progetto.
Dove vengono cercati i moduli. sys.path, PYTHONPATH (variabile d'ambiente)