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) |