Où est initialisé le sys.path de Python ?
Le sys.path de Python, qui contient les répertoires dans lesquels Python recherche les modules à importer, subit un processus d’initialisation complexe pour déterminer ses valeurs initiales. Voici un aperçu de la façon dont il est configuré :
Détermination sys.executable
- Python localise son emplacement physique sur le système de fichiers et l'utilise comme valeur pour sys .executable.
sys.exec_prefix et sys.prefix Initialisation
Initialisation de sys.path
- Python ajoute le répertoire du script en cours d'exécution à sys.path.
- Sous Linux/Mac, il ajoute la variable d'environnement PYTHONPATH, si elle est définie.
- Il inclut le chemin du fichier zip (/lib/python35.zip ou path/to/python.zip).
- Sous Windows et sans "applocal = true" dans pyvenv.cfg, il ajoute des sous-clés de "HK_CURRENT_USERSoftwarePythonPythonCore< ;DLLVersion>PythonPath."
- Sous Windows et sans "applocal = true" dans pyvenv.cfg, et si sys.prefix n'a pas été trouvé, il ajoute le "contenu principal" de "HK_CURRENT_USERSoftwarePythonPythonCorePythonPath. "
- Sous Windows et sans "applocal = true" dans pyvenv.cfg, il ajoute des sous-clés de "HK_LOCAL_MACHINESoftwarePythonPythonCorePythonPath."
- Sous Windows et sans "applocal = true" dans pyvenv. .cfg, et si sys.prefix n'a pas été trouvé, il ajoute le "contenu principal" de "HK_LOCAL_MACHINESoftwarePythonPythonCorePythonPath."
- Sous Windows et avec PYTHONPATH non défini, préfixe introuvable et aucune clé de registre présent, il ajoute la valeur relative au moment de la compilation de PYTHONPATH.
- Il intègre les chemins dans la macro de compilation PYTHONPATH par rapport au sys.prefix trouvé dynamiquement.
- Sous Linux/Mac, il ajoute sys.exec_prefix. Sous Windows, il ajoute le répertoire utilisé pour rechercher sys.prefix.
- Sous Windows et sans "applocal = true" dans pyvenv.cfg, il tente de trouver sys.prefix en localisant les fichiers de repère dans sys.path . En cas d'échec, il laisse sys.prefix vide.
Modification supplémentaire par le module de site
- Le module de site modifie en outre sys.path en ajoutant répertoires basés sur sys.prefix, sys.exec_prefix et des chemins spécifiques à la plate-forme.
- Il inspecte ces nouveaux chemins pour les fichiers de configuration, en ajoutant potentiellement plus de chemins.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!
Déclaration:Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn