Python 的 sys.path 是从哪里初始化的?
Python 精心设计 sys.path 来为模块和包提供强大的搜索路径。初始化过程涉及各种步骤和注意事项。
确定 sys.path 的步骤:
-
确定 sys.executable: Python 识别它来自操作系统的绝对路径。此路径变为sys.executable。
-
建立sys.exec_prefix和sys.prefix:
- 检查同一个或父级中的pyvenv.cfg sys.executable 的目录。
- 使用配置的 home 值或 sys.executable 的目录作为 sys.prefix。
- 检查 PYTHONHOME 环境变量。
- 搜索地标文件(例如 lib/python/os.py)来确定 sys.exec_prefix 和 sys.prefix。
-
配置 sys.path:
- 将脚本目录添加到 sys.path(在 Linux/Mac 上)。
- 包含 PYTHONPATH 的内容。
- 添加 Python zip 文件。
- 包含相关注册表项的路径(仅限 Windows,除非 pyvenv.cfg 中 applocal = true)。
-
编译时和动态值:
- 添加 PYTHONPATH 宏中指定的路径(相对于 sys.prefix)。
- 包含 sys.exec_prefix(在 Linux/Mac 中)或 sys.prefix 目录(在 Windows 中) ).
-
后备前缀确定:
- 如果无法确定 sys.prefix,则在内部动态搜索它sys.path.
-
站点包导入:
- 导入站点模块,该模块进一步填充基于 sys.path 的在 sys.prefix 和 sys.exec_prefix 上。
以上是Python 的 `sys.path` 是如何初始化的?的详细内容。更多信息请关注PHP中文网其他相关文章!