簡體   English   中英

使用 Nuitka 編譯任何 Python 程序后,我得到“不是有效的 win32 應用程序”錯誤

[英]After compilation of any Python program with Nuitka I get “is not a valid win32 application” error

我正在嘗試使用 Nuitka 將我的 Python 項目編譯為 Windows 可執行文件 (.exe)。 在編譯過程中我沒有收到任何錯誤/警告,但是當我嘗試運行生成的可執行文件時,我在 Windows XP 上收到"C:\Python34\test.exe is not a valid win32 application"錯誤,在Windows 10 也是)。 即使我編譯了“Hello, World”,問題仍然存在。 程序,有趣的是,我可以在同一台 PC 上輕松地從 Visual Studio IDE 構建和運行 C++ 項目。

我正在使用 Windows XP(x32 位)、Python 3.4.0 和 Microsoft Visual C++ 2008 Professional。

我怎么解決這個問題?

我安裝了Microsoft Visual Studio 2010 Express而不是 Microsoft Visual Studio 2008 Professional,問題就消失了。 看起來 Nuitka 不能與以前版本的編譯器一起工作。 他們甚至在文檔中說,Nuitka 是為 Visual Studio 2017+ 設計的(但我無法在 Windows XP 上安裝最新版本),並且其他版本可能無法正常工作。

我曾經嘗試過 Nuitka 網站的第一步,並且與示例 1 相同。我發現:示例 1 使用 --mingw64 作為選項。 python -m nuitka --mingw64 hello.py

在示例 2/用例 1 中引入了另一個選項: python -m nuitka --follow-imports program.py

我只從示例 1(工作)中復制了我的 hello 代碼並將其重命名為program.py (失敗 - 甚至沒有可執行文件。),所以我很放心。 原因將是調用而不是代碼。 當我在第二次通話中輸入--mingw64時,它起作用了。 我的第一個想法(我對此並不陌生,並且沒有 nuitka 專家)是第二個示例調用隱式使用 gcc。 第一次它要求安裝它,然后它似乎使用它。 第一次調用似乎強制 mingw64 作為編譯器。 也可能是路徑條目的順序有所不同。 除非您通過顯式選項強制執行,否則只會執行第一個條目。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM