3.29 user -- Strumenti aggiuntivi per la configurazione specifica dell'utente

Come policy predefinita (NdT: politica di condotta), l'interprete Python non esegue del codice proprio dell'utente all'avvio di programmi Python. (Solo le sessioni interattive eseguono lo script specificato dalla variabile d'ambiente PYTHONSTARTUP, se esiste).

Comunque, su alcuni programmi o implementazioni specifiche della piattaforma può essere utile consentire agli utenti di avere un file standard di personalizzazione, che si possa avviare qualora un programma lo richieda. Questo modulo implementa tale meccanismo. Un programma che si desidera usi il meccanismo, deve eseguire l'istruzione:

import user

Il modulo user cerca un file .pythonrc.py nella directory personale dell'utente e se questo può venire aperto, lo esegue (usando execfile()) nel suo (il modulo user) spazio dei nomi globale. Errori durante questa fase non vengono gestiti; sta al programma che importa il modulo user farlo, se lo si desidera. Si assume che la directory personale venga indicata dalla variabile d'ambiente HOME; se questa non è stata impostata, viene utilizzata la directory corrente.

Il file utente .pythonrc.py può concretamente testare sys.version se si desidera fare diverse cose in funzione della versione di Python in uso.

Un avviso agli utenti: siate molto conservativi sul luogo in cui metterete il vostro file .pythonrc.py. Poiché non si conoscoscono a priori i programmi che lo utilizzerano, non è generalmente una buona idea cambiare il comportamento dei moduli standard e delle funzioni.

Un suggerimento per i programmatori che desiderano utilizzare questo meccanismo: un metodo semplice per lasciare agli utenti la possibilità di specificare opzioni per il vostro package è quello di definire delle variabili nel loro .pythonrc.py, testate nel vostro modulo. Per esempio, un modulo spam, che possiede un alto livello di dettaglio, può cercare una variabile user.spam_verbose, come segue:

import user

verbose = bool(getattr(user, ``spam_verbose'', 0))

La forma in tre argomenti della funzione getattr() viene usata nel caso in cui l'utente non abbia definito spam_verbose nel proprio file .pythonrc.py.

Per programmi con personalizzazioni pesanti, è meglio implementare la lettura di un file di personalizzazione specifico.

Programmi utilizzati in ambiti di sicurezza o di privacy non dovrebbero importare questo modulo; un utente può facilmente introdursi nel programma piazzando del codice arbitrario nel file .pythonrc.py.

Moduli per uso generale non dovrebbero importare questo modulo; potrebbe interferire con l'operazione di import del programma.

Vedete anche:

Modulo site:
Meccanismo di personalizzazione della piattaforma.
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.