c++运行python代码导入自定义模块

c++ run python code to import custom module

本文关键字:自定义 模块 导入 代码 运行 python c++      更新时间:2023-10-16

我刚开始编写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"answers"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运行时在哪里可以找到这个模块。

但我不确定我该怎么做。我想至少我可以尝试在python的标准路径中"安装"my_class.so作为一个自定义模块,但我想知道是否有更简单的解决方案。谢谢

制作.so后,可以安装my_class.so

签出这篇文章和这篇文章。