2016-07-14 336 views
1

我正在使用Qt 5.2應用程序並將Python C API嵌入到應用程序中。 我正在使用Python 3.3.4和Windows 7操作系統。在Windows操作系統上Py_Initialize崩潰

當我們運行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(); 
} 

我只是把調試語句,來到知道Py_Initialize()是越來越儘管我們設置了PYTHONHOME和PYTHONPATH環境變量失敗。我們只獲得「Before Initialize」調試打印。

注:我只在Windows操作系統中觀察到此問題。這個問題在Python 2.7中沒有被觀察到。在Linux操作系統中一切工作正常與Python 2.7 & Python 3.3.4。問題僅限於Windows & Python 3.

爲什麼Py_Initialize()函數崩潰?如何解決這個問題? 我用Python試過3.3.4 & 3.3.5。在這兩個版本的應用程序正在崩潰。

在此先感謝。

+0

使用調試版本蟒,一個調試器下運行的代碼,看到它崩潰。只有你可以回答你的問題,這就是你應該先嚐試的。 –

+1

謝謝。我發現問題是PYTHONHOME路徑設置不正確。我曾經在Py_Initialize之前調用Py_SetPythonHome,一切正常。 – Neel

+1

這不屬於評論。回答你自己的問題:) –

回答

0

Neel在評論中回答了他自己,這也解決了我的問題,所以我認爲答案是有序的。


我發現問題是PYTHONHOME路徑設置不正確。我曾經在Py_Initialize之前調用Py_SetPythonHome,一切正常。 - 尼爾07月15日在'16 11:53

僅供參考Py_SetPythonHome (2.7)Py_SetPythonHome (3.6)

相關問題