DrizzleSh 2022-07-07 19:08 采纳率: 0%
浏览 55
已结题

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

  • 写回答

0条回答 默认 最新

      报告相同问题?

      问题事件

      • 系统已结题 7月15日
      • 创建了问题 7月7日

      悬赏问题

      • ¥20 JAVAscript
      • ¥15 VS2019 SPY++ 获取句柄操作
      • ¥15 Facebook 获取广告
      • ¥15 java文本解密算法
      • ¥15 有没有办法等sql查询完成后执行下一步操作
      • ¥15 android8以下机子自动连接指定wifi热点
      • ¥15 python下sqlserver数据表变化监听
      • ¥50 VC中怎么用sql语言联合查询多个加密数据库?
      • ¥65 要通过ADB 命令,修改 开发者选项里面的瀑布刘海屏选项,来个会的chatGPT早就问过了, 不要般
      • ¥15 java中用poi解析word和exce ,拿不到插入的附件的data