在pythonQt中使用numpy模块

Using numpy module in pythonQt

本文关键字:numpy 模块 pythonQt      更新时间:2023-10-16

我想在Qt中使用python(特别是numpy pkg),因此我使用PythonQt来实现此目的。因为我需要numpy python模块,所以我使用这个标志来初始化PythonQt。

PythonQt::init(PythonQt::ExternalHelp);

对于测试numpy,我使用简单的示例测试,如下所示

int main(int argc, char *argv[]){
    QCoreApplication a(argc,argv);
    PythonQt::init(PythonQt::ExternalHelp);
    PythonQtObjectPtr  context=PythonQt::self()->getMainModule();
    context.evalScript("import numpyndef mul(a,b):n  return a*b");
    QVariantList args;
    args<<42<<2;
    QVariant result=context.call("mul",args);
    qDebug()<<result.toString();
    return a.exec();
}

当我运行上面的简单代码时,它会引发以下错误:文件"/usr/local/lib/python-64bit-3.4.3/lib/site-packages/numpy/core/init.py&quotimportterror:没有名为multiarray的模块

我还用c++创建了一个简单的项目,并将python.h头文件和python库目录添加到我的项目中,以便测试numpy。结果是好的,一切正常工作,但在PythonQt不工作。我搜索了很多这个错误,但没有一个解决我的问题。

我需要立即解决这个问题,谢谢你的帮助

最后经过大量尝试解决这个问题,我发现PythonQt应该在发布模式下构建才能正常工作(如PythonQt文档中提到的)。因为我编译python3.4,我可以调试PythonQt,因为我在调试模式下构建PythonQt,它生成PythonQt。PDB文件为我,但在调试模式下,它不能正常工作。我把这篇文章留给有同样问题的人。