1.2. Variables d’environnement¶
Ces variables d’environnement influencent le comportement de Python, elles sont traitées avant les commutateurs de ligne de commande autres que-E ou-I. Il est habituel que les commutateurs de ligne de commande remplacent les variables d’environnement lorsqu’il y a un conflit.
PYTHONHOME
¶
Changer l’emplacement de la norme bibliothèques Python., Par défaut, les bibliothèques sont recherchées dans prefix/lib/pythonversion
etexec_prefix/lib/pythonversion
, où prefix
etexec_prefix
sont des répertoires dépendant de l’installation, tous deux par défaut à /usr/local
.
Lors de la PYTHONHOME
correspond à un simple répertoire, sa valeur replacesboth prefix
et exec_prefix
. Pour spécifier différentes valeurspour ceux-ci, définissez PYTHONHOME
sur prefix:exec_prefix
.
PYTHONPATH
¶
Augmentez le chemin de recherche par défaut pour les fichiers de module., Le format est le même que celui du shell PATH
: un ou plusieurs noms de chemin de répertoire séparés paros.pathsep
(par exemple, deux-points sur Unix ou points-virgules sur Windows).Les répertoires inexistants sont ignorés silencieusement.
En plus des répertoires normaux, les entrées individuellesPYTHONPATH
peuvent faire référence à des fichiers Zip contenant des modules Python purs (sous forme source ou compilée). Les modules d’extension ne peuvent pas être importés à partir de zipfiles.,
Le chemin de recherche par défaut dépend de l’installation, mais commence généralement parprefix/lib/pythonversion
(voir PYTHONHOME
ci-dessus). Il est toujours ajouté à PYTHONPATH
.
Un répertoire supplémentaire sera inséré dans le chemin de recherche devantPYTHONPATH
comme décrit ci-dessus sous Options d’interface. Le chemin de recherche peut être manipulé à partir d’un programme Python en tant que variable sys.path
.
PYTHONPLATLIBDIR
¶
Si cette option est une chaîne non vide, il remplace le sys.platlibdir
valeur.,
Nouveau dans la version 3.9.
PYTHONSTARTUP
¶
S’il s’agit du nom d’un fichier lisible, les commandes Python de ce fichier sont exécutées avant que la première invite ne s’affiche en mode interactif. Le fichier est exécuté dans le même espace de noms où les commandes interactives sont exécutées, de sorte que les objets définis ou importés peuvent être utilisés sans qualification dans la session interactive. Vous pouvez également modifier les invites sys.ps1
etsys.ps2
et le crochet sys.__interactivehook__
dans ce fichier.,
Déclenche un événement d’auditcpython.run_startup
avec le nom de fichier comme argument lorsqu’il est appelé au démarrage.
PYTHONOPTIMIZE
¶
Si cette valeur est définie sur une chaîne non vide, cela équivaut à spécifier l’option-O
. Si défini sur un entier, cela équivaut à spécifier-O
plusieurs fois.
PYTHONBREAKPOINT
¶
Si ce paramètre est défini, il nomme un appelable en utilisant la notation à chemin pointillé., Le modulecontenant l’appelable sera importé, puis l’appelable sera exécuté par l’implémentation par défaut de sys.breakpointhook()
qui lui-même est appelé par breakpoint()
intégré. S’il n’est pas défini, ou défini sur emptystring, il est équivalent à la valeur « pdb.set_trace”. La définition de cette valeur sur thestring « 0 »entraîne l’implémentation par défaut de sys.breakpointhook()
pour ne faire que revenir immédiatement.
Nouveau dans la version 3.7.,
PYTHONDEBUG
¶
Si cette valeur est définie sur une chaîne non vide, cela équivaut à spécifier l’option-d
. Si défini sur un entier, cela équivaut à spécifier-d
plusieurs fois.
PYTHONOLDPARSER
¶
Si cette valeur est définie sur une chaîne non vide, activez l’analyseur LL(1) traditionnel.
Voir aussi la balise -X
oldparser
option et PEP 617.
Obsolète depuis la version 3.9, va être supprimé dans la version 3.10.,
PYTHONINSPECT
¶
Si cette valeur est définie sur une chaîne non vide, cela équivaut à spécifier l’option-i
.
Cette variable peut également être modifiée par le code Python en utilisantos.environ
pour forcer le mode d’inspection à la fin du programme.
PYTHONUNBUFFERED
¶
Si cette valeur est définie sur une chaîne non vide, cela équivaut à spécifier l’option-u
.
PYTHONVERBOSE
¶
Si cette valeur est définie sur une chaîne non vide, cela équivaut à spécifier l’option-v
., Si défini sur un entier, cela équivaut à spécifier-v
plusieurs fois.
PYTHONCASEOK
¶
Si cette option est définie, Python ignore la casse dans import
consolidés. Cela fonctionne uniquement sous Windows et OS X.
PYTHONDONTWRITEBYTECODE
¶
Si cette valeur est définie sur une chaîne non vide, Python n’essaiera pas d’écrire des fichiers.pyc
lors de l’importation des modules source. Cela équivaut à spécifier l’option-B
.,
PYTHONPYCACHEPREFIX
¶
Si cette valeur est définie, Python écrira des fichiers.pyc
dans un arborescence de répertoire miroir de ce chemin, au lieu de dans les répertoires__pycache__
dans l’arborescence source. Cela équivaut à spécifier l’option -X
pycache_prefix=PATH
.
Nouveau dans la version 3.8.
PYTHONHASHSEED
¶
Si cette variable n’est pas définie ou définie surrandom
, une valeur aléatoire est utilisée pour ensemencer les hachages des objets str et bytes.,
SiPYTHONHASHSEED
est défini sur une valeur entière, il est utilisé comme fixedseed pour générer le hash() des types couverts par la hashrandomization.
Son but est de permettre un hachage répétable, comme pour les selftests pour theinterpreter lui-même, ou de permettre à un cluster de processus python de partager des valeurs de hachage.
L’entier doit être un nombre décimal dans la gamme . Spécifier la valeur 0 désactivera la randomisation de hachage.
Nouveau dans la version 3.2.3.,
PYTHONIOENCODING
¶
Si cette option est définie avant l’exécution de l’interprète, il remplace le codage usedfor stdin/stdout/stderr, dans la syntaxe encodingname:errorhandler
. Le encodingname
et le :errorhandler
les pièces sont en option et l’même sens que dans str.encode()
.
Pour stderr, la balise :errorhandler
partie est ignoré; le gestionnaire sera toujours'backslashreplace'
.
Modifié dans la version 3.4: La partieencodingname
est maintenant facultative.
Modifié dans la version 3.,6: Sous Windows, l’encodage spécifié par cette variable est ignoré pour les tampons interactiveconsole sauf si PYTHONLEGACYWINDOWSSTDIO
est également spécifié.Les fichiers et les tuyaux redirigés via les flux standard ne sont pas affectés.
PYTHONNOUSERSITE
¶
Si cette option est définie, Python ne sera pas ajouter la balise user site-packages directory
de sys.path
.,
Voir aussi
PEP 370 Par l’utilisateur du site-packages directory
PYTHONUSERBASE
¶
Définit la balise user base directory
, qui est utilisé tocompute le chemin de la balise user site-packages directory
et Distutils des chemins d’installation d’python setup.py install --user
.
Voir aussi
PEP 370 – Per user site-packages directory
PYTHONEXECUTABLE
¶
Si cette variable d’environnement est définie, sys.argv
sera défini sur sa valeur au lieu de la valeur obtenue par le runtime C. Fonctionne uniquement sur MAC OS X.,
PYTHONWARNINGS
¶
C’est l’équivalent de la balise -W
option. Si elle est définie sur une chaîne séparée par des virgules, cela équivaut à spécifier -W
plusieurs fois, les filtres ultérieurs dans la liste ayant priorité sur ceux antérieurs dans la liste.
Les paramètres les plus simples appliquent une action particulière inconditionnellement à tous les avertissements émis par un processus (même ceux qui sont autrement ignorés par défaut):
PYTHONWARNINGS=default # Warn once per call locationPYTHONWARNINGS=error # Convert to exceptionsPYTHONWARNINGS=always # Warn every timePYTHONWARNINGS=module # Warn once per calling modulePYTHONWARNINGS=once # Warn once per Python processPYTHONWARNINGS=ignore # Never warn
Voir Le Filtre d’avertissements et la description des filtres d’avertissement pour plus de détails.,
PYTHONFAULTHANDLER
¶
Si cette variable d’environnement est définie sur une chaîne non vide,faulthandler.enable()
est appelé au démarrage: installer un gestionnaire deSIGSEGV
, SIGFPE
, SIGABRT
, SIGBUS
etSIGILL
signaux de vider le Python traceback. C’est l’équivalent de-X
faulthandler
option.
Nouveau dans la version 3.3.,
PYTHONTRACEMALLOC
¶
Si cette variable d’environnement est définie sur une chaîne non vide, commencez à tracer les allocations de mémoire Python en utilisant le moduletracemalloc
. La valeur de la variable est le nombre maximum de trames stockées dans une trace d’atrace. Par exemple, PYTHONTRACEMALLOC=1
ne stocke que les images les plus récentes. Voir le tracemalloc.start()
pour plus d’informations.
Nouveau dans la version 3.4.
PYTHONPROFILEIMPORTTIME
¶
Si cette variable d’environnement est définie sur une chaîne non vide, Python montrera combien de temps prend chaque importation., Cela équivaut exactement à définir-X importtime
sur la ligne de commande.
Nouveau dans la version 3.7.
PYTHONASYNCIODEBUG
¶
Si cette variable d’environnement est définie sur une chaîne non vide, activez le mode debug du moduleasyncio
.
Nouveau dans la version 3.4.
PYTHONMALLOC
¶
Définissez les allocateurs de mémoire Python et / ou installez les hooks de débogage.,
la famille des allocateurs de mémoire utilisée par Python:
Installer debug crochets:
-
debug
: installer debug crochets sur le dessus de la valeur par défaut memoryallocators. -
malloc_debug
: mêmemalloc
mais aussi installer de débogage crochets. -
pymalloc_debug
: mêmepymalloc
mais aussi installer de débogage crochets.
Voir les allocateurs de mémoire par défaut et la fonctionPyMem_SetupDebugHooks()
(installer les hooks de débogage sur les allocateurs Pythonmemory).
Modifié dans la version 3.,7: Ajout de l’allocateur"default"
.
de Nouveau dans la version 3.6.
PYTHONMALLOCSTATS
¶
S’il est défini sur une chaîne non vide, Python affichera les statistiques de thepymalloc memory allocator chaque fois qu’un nouvel objectarena pymalloc est créé, et à l’arrêt.
Cette variable est ignorée si la variable d’environnementPYTHONMALLOC
est utilisée pour forcer l’allocateurmalloc()
de la bibliothèque C, ou si ifPython est configuré sans la prise en charge depymalloc
.
Modifié dans la version 3.,6: Cette variable peut maintenant également être utilisée sur Python compilé dans release mode.It n’a maintenant aucun effet s’il est défini sur une chaîne vide.
PYTHONLEGACYWINDOWSFSENCODING
¶
S’il est défini sur une chaîne non vide, le mode d’encodage du système de fichiers par défaut et les erreurs reviendront à leurs valeurs pré-3.6 de ‘mbcs’ et ‘replace’, respectivement.Sinon, les nouvelles valeurs par défaut ‘utf-8 ‘et’ surrogatepass’ sont utilisées.
Cela peut également être activé lors de l’exécution avecsys._enablelegacywindowsfsencoding()
.
Disponibilité: Windows.
Nouveau dans la version 3.6: Voir PEP 529 pour plus de détails.,
PYTHONLEGACYWINDOWSSTDIO
¶
Si défini sur une chaîne non vide, n’utilise pas le nouveau lecteur de console andwriter. Cela signifie que les caractères Unicode seront codés selonla page de code de la console active, plutôt que d’utiliser utf-8.
Cette variable est ignorée si les flux standard sont redirigés (vers des canaux filesor) plutôt que de se référer à des tampons de console.
Disponibilité: Windows.
Nouveau dans la version 3.6.,
PYTHONCOERCECLOCALE
¶
Si la valeur0
est définie sur 0
, l’application principale de la ligne de commande Python ignore la contrainte des paramètres régionaux C et POSIX ASCII hérités vers une alternative UTF-8 plus utilisable.,d’autre explicitement en ASCII POSIX
paramètres régionaux, puis thePython CLI pour configurer les langues suivantes pour leLC_CTYPE
catégorie dans l’ordre de la liste avant de charger le interpreterruntime:
-
C.UTF-8
-
C.utf8
-
UTF-8
Si le réglage de l’un de ces paramètres régionaux catégories réussit, alors la balise LC_CTYPE
variable d’environnement sera également fixé en conséquence dans le courant processenvironment avant l’exécution Python est initialisé., Cela garantit qu’en plus d’être vu à la fois par l’interpréteur lui-même et par d’autres composants régionaux-awarecomponents s’exécutant dans le même processus (comme la bibliothèque GNU readline
), le paramètre mis à jour est également vu dans les sous-processus (indépendamment du fait que ces processus exécutent ou non un interpréteur Python), div>).,
La configuration d’un de ces paramètres régionaux (explicitement ou via la coercition locale ci-dessus) active automatiquement le gestionnaire d’erreurssurrogateescape
poursys.stdin
etsys.stdout
(sys.stderr
continue d’utiliserbackslashreplace
comme dans n’importe quel autre paramètre régional). Ce comportement de gestion de flux peut être surchargé en utilisant PYTHONIOENCODING
comme d’habitude.,
À des fins de débogage, la définition dePYTHONCOERCECLOCALE=warn
entraînera l’émission de messages d’avertissement surstderr
si la coercion locale s’active, ou si une locale qui aurait déclenché la coercion est toujours active lorsque le runtime Python est initialisé.
Notez également que même lorsque la coercition des paramètres régionaux est désactivée ou lorsqu’elle ne parvient pas à trouver un paramètre régional cible approprié,PYTHONUTF8
activera toujours bydefault dans les paramètres régionaux ASCII hérités., Les deux fonctionnalités doivent être désactivées afin de forcer l’interpréteur à utiliser ASCII
au lieu de UTF-8
pour les interfaces système.
Disponibilité: *nix.
Nouveau dans la version 3.7: Voir PEP 538 pour plus de détails.
PYTHONDEVMODE
¶
Si cette variable d’environnement est définie sur une chaîne non vide, enablePython Mode de développement, introduisant des runtimechecks supplémentaires qui sont trop chers pour être activés par défaut.
Nouveau dans la version 3.7.,
PYTHONUTF8
¶
Si elle est définie sur1
, active le mode UTF-8 de l’interpréteur, oùUTF-8
est utilisé comme encodage de texte pour les interfaces système, indépendamment des paramètres régionaux actuels.
Cela signifie que:
sys.getfilesystemencoding()
renvoie'UTF-8'
(le localeencoding est ignoré).
locale.getpreferredencoding()
renvoie'UTF-8'
(le localeencoding est ignorée, et la fonctiondo_setlocale
paramètre a noeffect).,F-8 comme encodage de texte, le gestionnaire d’erreurssurrogateescape
étant activé poursys.stdin
etsys.stdout
(sys.stderr
continue d’utiliserbackslashreplace
comme c’est le cas en mode par défaut compatible avec les paramètres régionaux)
En raison des modifications apportées à ces API de niveau inférieur, d’autres API de niveau supérieur présentent également des comportements par défaut différents:
Les arguments de ligne de commande, les variables d’environnement et les noms de fichiers sont décodés au texte en utilisant l’encodage UTF-8.,
os.fsdecode()
etos.fsencode()
utiliser le codage UTF-8.
open()
,io.open()
etcodecs.open()
utiliser l’UTF-8encoding par défaut. Cependant, ils utilisent toujours le gestionnaire d’erreurs strict bydefault afin que tenter d’ouvrir un fichier binaire en mode texte soit probablepour déclencher une exception plutôt que de produire des données absurdes.,
Notez que les paramètres de flux standard en mode UTF-8 peuvent être remplacés parPYTHONIOENCODING
(tout comme ils peuvent l’être dans les paramètres régionaux par défaut-awaremode).
Si défini sur0
, l’interpréteur s’exécute dans son mode par défaut prenant en compte les paramètres régionaux.
La définition d’une autre chaîne non vide provoque une erreur lors de l’initialisation d’interpreterinitialisation.,
Si cette variable d’environnement n’est pas définie du tout, alors l’interpréteur defaultsto utilisant les paramètres régionaux actuels, à moins que les paramètres régionaux actuels ne soient identifiés comme des paramètres régionaux ASCII hérités(comme décrit pourPYTHONCOERCECLOCALE
), et que la coercition des paramètres régionaux soit désactivée ou échoue. Dans de tels paramètres régionaux hérités, l’interpréteurpar défaut pour activer le mode UTF – 8, sauf si explicitement demandé de ne pas le faire.
sont Également disponibles dans le -X
utf8
option.
Nouveau dans la version 3.7: Voir PEP 540 pour plus de détails.
1.2.1., Variables en mode débogage¶
La définition de ces variables n’a d’effet que dans une version de débogage de Python.
PYTHONTHREADDEBUG
¶
Si défini, Python affichera les informations de débogage du thread.
Besoin de Python configuré avec l’option de construction--with-pydebug
.
PYTHONDUMPREFS
¶
S’il est défini, Python videra les objets et les nombres de références encore en vie après avoir désactivé l’interpréteur.
Besoin de Python configuré avec l’option de construction--with-trace-refs
.