DrizzleSh
2022-07-07 19:08
采纳率: 0%
浏览 6

在Qt上嵌入python算法,import使用的.py文件时报错。

问题遇到的现象和发生背景

在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代码。

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

相关推荐 更多相似问题