【发布时间】:2016-05-10 07:04:07
【问题描述】:
我尝试使用Python C api在C++中从python调用一个函数,测试成功。
但是如果我打算导入一个已经导入其他模块的模块,Pymodule_findmodule 将返回 Null,即使它在那里并创建了一个编译文件。这是我的代码
Py_Initialize();
PySys_SetPath("C:/Users/Mik/Documents/GitHub/youtube-dl");
PyObject * pythonFile = PyImport_ImportModule("test2");
这是该目录中名为 test2.py 的 python 文件,其中包含一个名为 test_dl.py 的文件和一个名为 TESTDL 的类
from test_dl import TESTDL
def someFunction(someInput):
return 12345
添加导入行后,我的程序不再将其识别为模块
编辑:原来 test_dl 的第一行为:
from __future__ import unicode_literals
这就是我收到此 ImportError 的原因:没有名为 future
的模块谢谢!
【问题讨论】:
-
听起来您在尝试导入
test_dl或从中检索TESTDL对象时可能遇到了异常。 -
在您致电
PyImport_ImportModule("test2")后,PyErr_Print()会打印什么?
标签: python c++ python-import python-c-api