问题遇到的现象和发生背景
在linux上用Qt写一个小界面,其中有一部分需要使用到python的算法,于是采用了往Qt中嵌入python文件的方法,但是在import的时候报错了。
问题相关代码,请勿粘贴截图
Py_Initialize();
if(!Py_IsInitialized()){
return -1;
}
PyRun_SimpleString("import sys");
PyRun_SimpleString("sys.path.append('F:/QT/QtCVPython/')");
PyObject* pModule = PyImport_ImportModule("py_test"); //在这一步开始报错
if(!pModule){
std::cout << "Why Can't open python file!\n" << std::endl;
return -1;
}
PyObject* pFunhello= PyObject_GetAttrString(pModule,"printLoc");
if(!pFunhello){
std::cout << "Get function hello failed!\n" << std::endl;
return -1;
}
PyObject_CallFunction(pFunhello, NULL);
Py_Finalize();
运行结果及报错内容
在使用 PyImport_ImportModule() 语句导入py文件时,测试文件没问题,但是导入我想用的py文件时就报错程序异常结束了。
我的解答思路和尝试过的方法
是因为文件大小原因吗?为什么测试的打印没问题,换了py文件就报错呢。
我在命令行使用 python 文件名运行,是没问题的。
到python命令里面import我想要的文件也没有问题,用的是同一个python,我用which python确认过地址。
我想要达到的结果
成功在Qt上运行我的python代码。