在初始化时嵌入python错误

当我运行C代码来调用python函数时,Py_Initialize()上出现错误错误是ImportError:没有名为site的模块。 我试过把Py_SetProgramName(argv [0])但它不起作用。 cmd调用是cInterfacePython Test.py乘以3 2(exe是cInterfacePython)

我不得不使用PATH env-var以及PYTHONPATH进行处理,以便在嵌入时更好地工作。

Py_SetProgramName并不重要,它主要用于内部参考等…

所以,我建议你找到本地安装python的地方(这可以在Windows机器上的注册表中找到),并使用setenv将PATH和PYTHONPATH设置为适当的值。 这将是PATH的python.exe目录(如上面的注释中所示),以及使用您自己的python代码和从嵌入式exe运行的相关库将dY设置为目录的PYTHONPATH。

然后运行Py_Initialize并查看是否正确的事情发生。 如果您需要在初始化后修改PYTHONPATH,请使用PySys_SetPath()修改sys.path。

我遇到了同样的问题(Windows,使用Visual Studio和MinGW / g ++),我通过向PYTHONPATH添加site.py的路径来解决它。 出于某种原因,即使没有它也可以启动python.exe,并且sys.path确实包含该路径(即使PYTHONPATH没有),我可以“导入网站”,但Py_Initialize无法做到与python相同的事情.exe做了。