我是编写c ++ / python混合程序的新手。
我编译了my_class.so(在c ++中),可以在python中导入它。
以下程序运行没有任何问题。
#!/user/bin/env python
from my_class import *
l = my_class()
l.doSomething("filename")
我拥有相同文件夹下的所有内容,如果我启动python环境,我可以执行以下操作而不会出现任何错误
>>>import my_class
这是我接下来尝试的,我试图从c ++调用python脚本, "你好"和"导入numpy"部分成功运行没有任何问题。
接下来我尝试了一些纯粹实验性的东西,我想测试一下这种可能性,但是我不希望任何真正的应用程序,我想导入我自己的类。 如下所示(我知道我正在创建一个c ++ / python / c ++链):
#include <Python.h>
int main(int argc, char *argv[]){
Py_Initialize();
//PyRun_SimpleString("print \"hello!\"");
//PyRun_SimpleString("import numpy");
PyRun_SimpleString("import my_class");
Py_Finalize();
return 0;
}
我收到以下错误:
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named my_class
这并不奇怪,因为my_class不是标准模块,我可能需要告诉c ++程序中的python运行时在哪里找到这个模块。
但我不知道如何做到这一点。我假设至少我可以尝试安装&#34; my_class.so作为python标准路径中的自定义模块,但我想知道是否有更简单的解决方案。谢谢!