1

我正在尝试使用 Nuitka 将我的 Python 项目编译为 Windows 可执行文件 (.exe)。在编译过程中我没有收到任何错误/警告,但是当我尝试运行生成的可执行文件时,我"C:\Python34\test.exe is not a valid win32 application"在 Windows XP 上收到错误,在 Windows 10 上也收到类似错误)。即使我编译了“Hello, World!”,问题仍然存在。程序。有趣的是,我可以在同一台 PC 上轻松地从 Visual Studio IDE 构建和运行 C++ 项目。

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

我怎么解决这个问题?

4

2 回答 2

1

我安装了Microsoft Visual Studio 2010 Express而不是 Microsoft Visual Studio 2008 Professional,问题就消失了。看起来 Nuitka 不能与以前版本的编译器一起工作。他们甚至在文档中说,Nuitka 是为 Visual Studio 2017+ 设计的(但我无法在 Windows XP 上安装最新版本),并且其他版本可能无法正常工作。

于 2020-04-25T11:21:43.040 回答
0

我曾经尝试过 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 作为编译器。也可能是路径条目的顺序有所不同。除非您通过显式选项强制执行,否则只会执行第一个条目。

于 2021-05-21T13:29:18.113 回答