我是编写 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 脚本, “hello”和“import 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 运行时在哪里可以找到这个模块。
但是我不确定我该怎么做。我假设至少我可以尝试将 my_class.so 作为自定义模块“安装”在 python 的标准路径中,但我想知道是否有更简单的解决方案。谢谢!
最佳答案
关于python - c++运行python代码以导入自定义模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29529013/