使用 Nuitka 编译任何 Python 程序后,我得到 "is not a valid win32 application" 错误
After compilation of any Python program with Nuitka I get "is not a valid win32 application" error
我正在尝试使用 Nuitka 将我的 Python 项目编译为 Windows 可执行文件 (.exe)。我在编译过程中没有得到 errors/warnings,但是当我尝试 运行 生成的可执行文件时,我在 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 作为编译器。也可能是路径条目的顺序有所不同。除非您通过显式选项强制执行,否则只会执行第一个条目。
我正在尝试使用 Nuitka 将我的 Python 项目编译为 Windows 可执行文件 (.exe)。我在编译过程中没有得到 errors/warnings,但是当我尝试 运行 生成的可执行文件时,我在 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 作为编译器。也可能是路径条目的顺序有所不同。除非您通过显式选项强制执行,否则只会执行第一个条目。