我想在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();
}
当我运行上面的简单代码时,会引发此错误: 文件&#34; /usr/local/lib/python-64bit-3.4.3/lib/site-packages/numpy/core/ init .py&#34;,第5行,in ImportError:没有名为multiarray的模块
我还在c ++中创建了一个简单的项目,并将python.h头文件和python lib目录添加到我的项目中以测试numpy。结果还可以,一切正常,但在PythonQt中它不起作用。我搜索了很多这个错误,但没有一个解决了我的问题。
我需要立即解决这个问题,以便帮助
答案 0 :(得分:1)
最后经过大量尝试解决这个问题后,我发现PythonQt应该在发布模式下构建才能正常工作(如pythonQt的文档中所述)。因为我编译python3.4,我可以调试PythonQt,因为我在Debuging模式下构建PythonQt它为我生成PythonQt.pdb文件,但在调试模式下它无法正常工作。 我留下这篇文章,说明谁遇到同样的问题。