Par principe, Python n'exécute aucun code propre à l'utilisateur
au démarrage des programmes Python. (Seules les sessions interactives
exécutent le script spécifié dans la variable d'environnement
$PYTHONSTARTUP si elle existe).
Cependant, certains programmes ou sites peuvent trouver pratique de
permettre aux utilisateurs d'avoir un fichier de configuration standard,
qui est exécuté quand un programme le demande. Ce module implémente un
mécanisme à cet effet. Un programme qui souhaite l'utiliser doit
exécuter l'instruction
Le module user recherche un fichier .pythonrc.py
dans le répertoire de base de l'utilisateur et s'il peut être ouvert,
l'exécute (en utilisant execfile())
dans son propre espace de noms global, c'est-à-dire celui du
module user). Les erreurs qui se produisent pendant cette
phase ne sont pas interceptées; il appartient au programme qui
importe le module user de le faire, s'il le souhaite.
Le répertoire de base est celui défini par la variable d'environnement
$HOME; si elle n'est pas définie, on se sert du répertoire
courant.
Le fichier .pythonrc.py peut par exemple tester la valeur de
Avertissement aux utilisateurs: faites très attention à ce que vous
mettez dans votre fichier .pythonrc.py. Puisque vous ne savez pas
quels programmes vont l'utiliser, changer le comportement des modules
ou des fonctions standard n'est généralement pas une bonne idée.
Une suggestion pour les programmeurs qui souhaitent utiliser ce
mécanisme: une façon simple pour laisser les utilisateurs spécifier
des options pour votre package est de leur faire définir des
variables dans leur fichier .pythonrc.py, que vous testez
dans votre module. Par exemple, un module spam plus ou
moins verbeux peut rechercher une variable Pour les programmes qui ont des besoins de personnalisation importants
il est préférable de lire des fichiers de personnalisation propres au
programme.
Les programmes pour lesquels la sécurité ou la confidentialité sont
importantes ne doivent pas importer ce module; un utilisateur
peut facilement entrer dans un programme en mettant du code
arbitraire dans le fichier .pythonrc.py.
Les modules à usage général ne doivent pas importer ce
module; il se peut qu'il interfère avec le fonctionnement du
programme qui l'importe.
import user
sys.version s'il souhaite agir différemment selon la version
de Python.
user.spam_verbose
de la façon suivante:
import user
try:
verbose = user.spam_verbose # préférence de verbosité de l'utilisateur
except AttributeError:
verbose = 0 # verbosité par défaut