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

在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 sub地址DHCP问题
    • ¥15 delta降尺度计算的一些细节,有偿
    • ¥15 Arduino红外遥控代码有问题
    • ¥15 数值计算离散正交多项式
    • ¥30 数值计算均差系数编程
    • ¥15 redis-full-check比较 两个集群的数据出错
    • ¥15 Matlab编程问题
    • ¥15 训练的多模态特征融合模型准确度很低怎么办
    • ¥15 kylin启动报错log4j类冲突
    • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大