Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/151.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c++;运行python代码以导入自定义模块_Python_C++_Boost Python - Fatal编程技术网

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

c++;运行python代码以导入自定义模块,python,c++,boost-python,Python,C++,Boost Python,我对编写c++/python混合程序还不熟悉 我已经编译了我的_class.so(用c++编写)并可以用python导入它 以下程序运行时没有任何问题 #!/user/bin/env python from my_class import * l = my_class() l.doSomething("filename") 我把所有东西都放在同一个文件夹下,如果我启动python环境,我可以毫无错误地执行以下操作 >>>import my_class 这是我接下来尝试的,我

我对编写c++/python混合程序还不熟悉

我已经编译了我的_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”部分成功运行,没有任何问题

#!/user/bin/env python
from my_class import *
l = my_class()
l.doSomething("filename")
接下来,我尝试了一些纯实验性的东西,我想测试一下可能性,但我不期望有任何真正的应用程序,我想导入我自己的类。 如下所示(我知道我正在创建一个c++/python/c++链):

#包括
intmain(intargc,char*argv[]){
Py_初始化();
//PyRun_SimpleString(“打印”你好!\”);
//PyRun_SimpleString(“进口numpy”);
PyRun_SimpleString(“导入我的_类”);
Py_Finalize();
返回0;
}
我得到了以下错误:

Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named my_class
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
ImportError:没有名为my_类的模块

这并不完全是意外,因为MyuC类不是标准模块,我可能需要告诉C++程序中的Python运行时在哪里找到这个模块。


但我不确定我怎么能做到。我假设至少我可以尝试“安装”我的_类,作为python标准路径中的自定义模块,但我想知道是否有更简单的解决方案。谢谢

制作
.so
后,您可以安装
my_类。so


签出和。

您是否在
my\u calss.py
模块所在的同一目录中执行二进制文件?这只是一个路径问题,仅此而已。