在 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 留给遇到同样问题的人。
我想在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 留给遇到同样问题的人。