Py_Initialize在Windows操作系统上崩溃

时间:2016-07-14 17:12:58

标签: python qt python-3.x

我正在使用Qt 5.2应用程序和嵌入式Python C API进入应用程序。 我使用的是Python 3.3.4和Windows 7操作系统。

当我们运行Qt应用程序时,Py_Initialize()函数正在崩溃。

以下是示例代码。

int main(int argc, char * argv[])
{

    QApplication app(argc, argv);

    QCoreApplication::setApplicationName("My Python Application");
    Py_SetProgramName("Test Program");

    qDebug() << "Before Initialize";

    Py_Initialize();

    qDebug() << "After Initialize";

    // Shutdown Python
    Py_Finalize();

    return app.exec();  
}

我只是放了调试语句,并且知道即使我们设置了PYTHONHOME和PYTHONPATH环境变量,Py_Initialize()也会失败。我们只得到&#34;在初始化之前&#34;调试打印。

注意:我仅在Windows操作系统中观察到此问题。在Python 2.7中没有观察到此问题。在Linux操作系统中,一切都在使用Python 2.7&amp; Python 3.3.4。问题仅出在Windows&amp; Python 3。

为什么Py_Initialize()函数崩溃了?如何解决这个问题? 我试过Python 3.3.4&amp; 3.3.5。在这两个版本中,应用程序都崩溃了。

先谢谢。

1 个答案:

答案 0 :(得分:1)

Neel在评论中为自己回答,这也为我解决了这个问题所以我认为答案是有条理的。

  

我发现问题是PYTHONHOME路径设置不正确。我曾经在Py_Initialize之前调用Py_SetPythonHome,一切正常。 - Neel 2016年7月15日11:53

供参考Py_SetPythonHome (2.7)Py_SetPythonHome (3.6)