You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows嵌入式Python(以Blender为例)如何定位lib文件?

嵌入式Python如何定位lib目录(以Blender为例)

Windows版Blender附带的嵌入式Python目录结构如下:

blender-2.79b-windows64\
    2.79\
        python\
            bin\
                python.exe
                python35.dll    # 仅这两个文件
            lib\
                asyncio\
                collections\
                ... 
                + 大量.py和.pyd文件

即使系统没有全局Python环境,运行python.exe仍能正常工作,且不存在任何.pth或._pth文件。那么这个python.exe是怎么知道库文件在../lib目录的?

注:这种情况并非Blender特有,很多自带嵌入式Python的软件都存在该现象。


核心原因

嵌入式Python的python.exe是通过启动时的内置路径推导逻辑来定位lib目录的,具体步骤如下:

  1. python.exe启动后,会通过Windows系统API(比如GetModuleFileName)获取自身的绝对路径,比如示例中的blender-2.79b-windows64\2.79\python\bin\python.exe。
  2. 基于自身路径向上回溯一级,得到python目录的路径,再拼接lib子目录路径,最终得到库文件所在的../lib绝对路径。
  3. 程序会自动把这个路径添加到Python的模块搜索路径sys.path中,这样就能正常加载lib下的库文件了。

另外,部分嵌入式Python是通过编译时硬编码路径规则实现的——软件开发者在编译Python源码时,会修改默认的库路径逻辑,指定相对自身exe的固定位置作为lib目录,不需要依赖外部配置文件。


内容的提问来源于stack exchange,提问作者Basj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 02:24:57