3.24 user --- Configuration de l'utilisateur

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

import user

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 sys.version s'il souhaite agir différemment selon la version de Python.

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

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.

Voir aussi:

Module site:
mécanisme de personnalisation d'un site entier