Questo modulo fornisce un'interfaccia ai meccanismi usati per implementare l'istruzione import. Definisce le seguenti costanti e funzioni:
) |
) |
(suffix, mode, type)
, dove suffix è
una stringa da aggiungere al nome del modulo per creare il nome del file
da cercare, mode è la stringa della modalità da passare alla
funzione built-in open() per aprire file (questa
può essere 'r'
per file di testo o 'rb'
per file
binari), e type è il tipo di file, che può assumere uno dei
valori PY_SOURCE, PY_COMPILED, o
C_EXTENSION, descritti più avanti.
name[, path]) |
None
, la ricerca avviene nei percorsi contenuti in
sys.path
, ma dopo aver cercato in alcuni luoghi speciali:
innanzitutto prova a cercare un modulo built-in con il nome dato
(C_BUILTIN), poi tra i moduli frozen (PY_FROZEN),
e così via in altri luoghi dipendenti dal sistema
(su Mac, si cerca tra le risorse (PY_RESOURCE); su Windows,
nel registro di configurazione, che potrebbe puntare ad uno specifico
file).
Se la ricerca ha successo, il valore restituito è una tripla
(file, pathname, description)
dove file
è un oggetto file aperto posto all'inizio della tripla, pathname è
il percorso del file trovato e description è una tripla identica a
quella restituita dalla funzione get_suffixes(), che
descrive il tipo di modulo trovato. Se il modulo non è in un file, il
file restituito è None
, filename è una stringa
vuota, e description contiene stringhe vuote per i suffissi e
modi del modulo; il tipo di modulo viene indicato tra parentesi, come
sopra.
Se la ricerca non ha successo, viene sollevata l'eccezione
ImportError. ALtre eccezioni indicano problemi relativi
agli argomenti o all'ambiente.
Questa funzione non gestisce i nomi di modulo gerarchici (nomi
contenenti punti). Per poter trovare P.M, cioè il
modulo derivato M del package P, usate
find_module() e load_module() per trovare e
caricare P, e quindi find_module() con l'argomento
path impostato a P.__path__
. Nel caso in cui
P stesso abbia un nome con caratteri punto, applicate il
procedimento ricorsivamente.
name, file, filename, description) |
None
e ''
, rispettivamente, quando il
modulo non viene caricato da un file. L'argomento description è
una tupla, identica a quella restituita da get_suffixes(),
che descrive il tipo di modulo da caricare.
Se il caricamento avviene con successo, il valore restituito è l'oggetto modulo; altrimenti, viene sollevata un'eccezione (di solito ImportError).
Importante: il chiamante è anche responsabile
di chiudere l'argomento file, se questo non era None
,
anche quando viene sollevata un'eccezione. Questo scopo viene raggiunto
in modo ottimale usando l'istruzione try ... finally.
name) |
sys.modules
.
) |
True
se il lock al modulo viene correntemente
mantenuto, altrimenti False
. Su piattaforme che non supportano
thread, restituisce sempre False
.
Su piattaforme che supportano i thread, un thread che esegue un import mantiene un lock interno finchè l'import non viene completato. Questo lock blocca altri thread che pure tentino di eseguire un import fino a quando il primo import non è terminato, prevenendo così la possibilità che gli altri thread vedano oggetti modulo ancora incompleti prima che l'import sia stato completato (anche altri eventuali import presenti vengono bloccati).
) |
) |
Le seguenti costanti a valori interi, definite in questo modulo, vengono usate per indicare il risultato della ricerca di find_module().
Le seguenti costanti e funzioni sono obsolete; le loro funzionalità vengono rese disponibili tramite find_module() o load_module(). Vengono mantenute per compatibilità all'indietro.
name) |
None
.
name) |
None
. (I moduli frozen sono
moduli scritti in Python il cui oggetto compilato in bytecode viene
incorporato in un interprete Python personalizzato, attraverso l'utility
Python freeze. Vedete, per adesso, Tools/freeze/.)
name) |
1
se esiste un modulo built-in chiamato name che
può essere inizializzato nuovamente. Restituisce -1
se esiste un
modulo built-in chiamato name che non può essere inizializzato
nuovamente (vedete init_builtin()). Restituisce 0
se non esistono moduli built-in chiamati name.
name) |
True
se esiste un modulo frozen (vedete
init_frozen()) chiamato name, o False
se non
esiste il modulo.
name, pathname, file) |
name, pathname[, file]) |
name, pathname, file) |