在 pythonQt 中使用 numpy 模块

Using numpy module in pythonQt

我想在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 numpy\ndef 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”,第 5 行,在 导入错误:没有名为 multiarray

的模块

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

我需要立即解决这个问题所以坦克帮助

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