嵌入Python:没有名为site的模块

jra*_*amm 7 c python embedding importerror python-2.7

我在一个C应用程序中嵌入python.我已经下载了标准的python dist并将其放在相对于程序的位置,并使用它来链接和构建C应用程序.

这在我的开发机器上工作正常,应用程序运行此版本的python.

当我捆绑应用程序和python发行版并部署它时,我得到以下错误:

ImportError: No module named site
Run Code Online (Sandbox Code Playgroud)

这可以通过设置PYTHONHOME到这个'本地'python发行版的路径来修复,但是我不想乱用用户可能已经拥有的任何python安装,所以宁愿不设置这个变量.

任何想法如何正确捆绑python解释器和lib而不干扰可能已经在目标机器上的任何可能的python版本?

aik*_*ven 4

只需添加

Py_SetPythonHome(pathToPython);
Run Code Online (Sandbox Code Playgroud)

打电话之前Py_InitializepathToPython应该是 python 发行版的路径,对于 Windows,它是包含LibDLLs文件夹的文件夹。