我想在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行,在ImportError:没有名为multiarray的模块中
我还在c++中创建了一个简单的项目,并将python.h头文件和python目录添加到我的项目中,以便测试numpy。结果正常,一切正常,但在PythonQt中,它不起作用。我找了很多这个错误,他们都没有解决我的问题。
我需要立即解决这个问题,所以坦克帮了忙
发布于 2015-09-23 04:55:30
最后,经过多次尝试解决这个问题,我发现PythonQt应该在发布模式下构建,以便正确工作(如pythonQt文档中提到的那样)。因为我编译了python3.4,所以我可以调试PythonQt,因为我在调试模式下构建了PythonQt --它为我生成PythonQt.pdb文件,但是在调试模式下它不能正常工作。我把这个职位留给有同样问题的人。
https://stackoverflow.com/questions/32688404
复制相似问题