2

当我运行 C 代码调用 python 函数时, Py_Initialize() 出现错误 错误是 ImportError: No module named site. 我试图把 Py_SetProgramName(argv[0]) 但它不起作用。cmd调用是cInterfacePython Test.py multiply 3 2 (exe是cInterfacePython)

4

2 回答 2

3

我不得不对 PATH env-var 和 PYTHONPATH 进行一些处理,以使嵌入时更好地工作。

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

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

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

于 2011-11-22T20:17:00.663 回答
1

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

于 2013-01-16T22:27:59.623 回答