Python .pth 和 ._pth 文件(标准安装与嵌入式 Python)

问题描述 投票:0回答:1

我看到 .pth 和 ._pth 文件有两种不同的行为:

  • Windows 的官方 Python 安装使用

    .pth
    中的
    lib\site-packages
    文件,如 https://docs.python.org/3.12/library/site.html#module-site 中所述。看来添加多个
    .pth
    文件是有效的,并且在 Python 解释器启动时使用

  • 适用于 Windows 的 Python

    Embedded 包似乎使用 ._pth

     文件(而不是 
    .pth
    !)来实现相同的目的:
    python38._pth
    ,但 
    python.exe 在同一个文件夹
    中。在这种情况下,解释器似乎不会在同一文件夹中添加第二个 
    .pth
    ._pth
     文件。为什么?有记录表明,对于嵌入式 Python,仅使用一个 ._pth 吗?

  • 更一般地说,
.pth

._pth

 文件的规则是什么?在哪种情况下我们应该使用其中之一,下划线_pth的原因是什么?
注意:这里的规则似乎很复杂(.pth 与 ._pth ;允许多个文件与仅使用一个文件)。

注意:

有关 ._pth

文件的文档

根据我对所提供文档的理解,我看到:
python path python-embedding
1个回答
0
投票

如果没有
    ._pth
  • 文件,Python 会根据一系列后备来填充其搜索路径,包括当前目录、

    PYTHONPATH

     环境变量、注册表中指定的应用程序路径以及相对于 Python 主目录的路径。该过程确保 Python 可以在各种配置中找到其库和模块。

    对于捆绑 Python(尤其是嵌入式发行版)的应用程序,
  • ._pth
  • 文件提供了一种精确控制搜索路径的方法,忽略其他配置,例如

    PYTHONPATH

    、注册表项,甚至 
    site
     模块,除非明确包含。该功能对于维护应用程序完整性并避免与其他 Python 安装发生冲突非常重要。
    
    

    您确实可以从文档中获得在应用程序中分发 Python 的明确指南,包括使用
  • ._pth
文件、管理环境变量以及确保标志性文件或目录的存在。这些实践有助于创建稳定且隔离的 Python 运行时环境,这对于嵌入式应用程序或当 Python 与其他产品捆绑时尤其重要。

简而言之:虽然 
.pth

文件提供了在标准环境中扩展 Python 模块搜索路径的灵活性,但

._pth

 文件提供了一种为嵌入式 Python 发行版创建受控、隔离环境的机制。

© www.soinside.com 2019 - 2024. All rights reserved.