3.23 site --- Configuration du site

Ce module est automatiquement importé pendant l'initialisation.

Dans des versions précédentes de Python (jusqu'à la version 1.5a3 incluse), des scripts ou des modules qui avaient besoin d'utiliser des modules propres à un site devaient placer "import site" quelque part au début de leur code. Ce n'est plus nécessaire.

Les chemins propres au site seront ajoutés au chemin de recherche des modules.

Le module commence par construire jusqu'à quatre répertoires à partir d'une partie tête et d'une partie queue. Pour la partie tête, il utilise sys.prefix et sys.exec_prefix; les têtes vides sont ignorées. Pour la partie de queue, il se sert de la chaîne vide (sur Macintosh ou Windows) ou bien il utilise d'abord lib/python/site-packages et ensuite lib/site-python (sous Unix). Pour chaque combinaison tête-queue distincte, il voit s'il se réfère à un répertoire existant, et si oui, il l'ajoute à sys.path, et inspecte également le chemin pour les fichiers de configuration.

Un fichier de configuration de chemin est un fichier dont le nom est de la forme package.pth; son contenu consiste en éléments additionnels (un par ligne) à ajouter à sys.path. Les éléments qui n'existent pas ne sont pas ajoutés à sys.path, mais on ne vérifie pas que l'élément fait référence à un répertoire (plutôt qu'à un fichier). Aucun élément n'est ajouté à sys.path plus d'une fois. Les lignes vides et celles qui commencent par # sont ignorées.

Par exemple, supposez que sys.prefix et sys.exec_prefix ont pour valeur /usr/local. La bibliothèque de la de Python est alors installée dans /usr/local/lib/python (où seuls les trois premiers caractères de sys.version sont utilisés pour former le nom du chemin d'installation). Supposez que celui-ci ait un sous-répertoire /usr/local/lib/python/site-packages avec trois sous-sous-répertoires, foo, bar et spam, et deux fichiers de configuration de chemin, foo.pth et bar.pth. Admettons que le contenu de foo.pth soit:

# configuration du package foo

foo
bar
bletch

et que bar.pth contienne:

# configuration du package bar

bar

Alors les répertoires suivants sont ajoutés à sys.path, dans cet ordre:

/usr/local/lib/python1.5/site-packages/bar
/usr/local/lib/python1.5/site-packages/foo

Notez que bletch est omis parce qu'il n'existe pas; le répertoire bar précède le répertoire foo parce que bar.pth est avant foo.pth dans l'ordre alphabétique; et spam est omis parce qu'il n'est mentionné dans aucun fichier de configuration de chemin.

Après ces manipulations de chemins, on essaie d'importer un module appelé sitecustomize, qui peuvent exécuter tout type de personnalisation propre au site. Si cet importation échoue avec une exception ImportError, aucun message n'est envoyé.

Notez que sur certains systèmes non-Unix, sys.prefix et sys.exec_prefix sont vides, et les manipulations de chemins sont ignorées; cependant on essaie toujours d'importer sitecustomize.