我正在尝试将python嵌入到我的应用程序中,并且很早就被卡住了。

我将python嵌入我的C++应用程序中,并使用在本教程中找到的代码:
http://docs.python.org/2/extending/embedding.html#pure-embedding

我的应用程序完全匹配,并且编译成功,没有错误。但是,在运行应用程序pModule = PyImport_Import(pName);行失败时返回0意味着我从PyErr_Print()的输出错误

Failed to load "C:\Users\workspace\dpllib\pyscript.py"
ImportError: Import by filename is not supported.

正在使用命令C:\Users\workspace\ndnlib\pyscript.py multiply 50 150调用该应用程序

最佳答案

我不确定,但是我在想,因为pName设置为argv [1],并且您使用的是完整路径来调用脚本,所以argv [1]是完整路径。这意味着代码将尝试导入“C:\Users\workspace\dpllib\pyscript.py”,而这是python无法做到的(它只能导入“pyscript”)。

尝试通过仅从目录内键入“pyscript.py”来运行脚本,然后查看错误是否更改为“无法加载“pyscript.py””。如果是这样,那么您必须对其进行修复,以便它不仅导入argv [1]并修改该字符串以获取模块名而不是文件名。

关于c++ - 嵌入python错误不支持按文件名导入,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14465473/

10-11 05:58