Blender(*) for Windows 附带嵌入式 Python,如下所示:
blender-2.79b-windows64\
2.79\
python\
bin\
python.exe
python35.dll # only these 2 files
lib\
asyncio\
collections\
...
+ many .py and .pyd files
即使没有系统全局安装 Pyton,启动 python.exe
也能正常工作。此外,任何地方都没有
.pth
或
._pth
文件。
问题:python.exe
如何知道库位于
..\lib
中?注意 (*):这
不是特定于 Blender(我仅使用 Blender 作为示例),这对于许多嵌入 Python 的软件来说很常见。
https://docs.python.org/3/library/sys_path_init.html#sys-path-init 和https://docs.python.org/3/library/site.html#module-site。
这个问题似乎假设,与常规的、不可嵌入的 Python 相比,嵌入式 Python 查找模块的方式有一些特殊之处。但没有。引用官方文档中有关 Windows 上嵌入式 Python 的内容:
与应用程序使用一样,包可以安装到任何位置,因为在初始化解释器之前有机会指定搜索路径。否则,使用嵌入式发行版和常规安装之间没有根本区别。(
https://docs.python.org/3/using/windows.html#embedding-python)