我正在Ubuntu 14.04上试验Nuitka并尝试创建并运行可执行文件。我有一个文件hello.py
,内容为
print("Hello please")
我使用命令hello.exe
转变为nuitka hello.py
。但是,当我尝试使用Wine 1.7运行它时,我得到以下错误:
$ wine hello.exe
wine: Bad EXE format for Z:\home\crclayton\hello.exe.
我认为这是Nuitka的问题,而不是Wine,因为我可以使用Wine运行我在C#中创建的helloworld.exe。有谁知道如何解决它?
修改
我在Ubuntu上没有运气,所以我测试了我的Windows 7分区上的hello.exe(Ubuntu和Windows都是64位),我收到以下错误:
此文件的版本与您正在运行的Windows版本不兼容。检查计算机的系统信息,以确定是否需要该程序的x86(32位)或x64(64位)版本,然后与软件发行商联系。
Nuitka是否正在创建一个32位exe的问题,我试图在64位操作系统上运行它?如果是这样,任何人都知道如何解决它?
答案 0 :(得分:6)
根据Nuitka手册
生成的文件名将是所有平台上的program.exe,这并不意味着它不能在非Windows上运行!但是如果你编译程序我们不想覆盖它,或者不确定哪一个是编译形式,哪一个不是。
如果你运行nuitka hello.py on Ubuntu (and thus
gcc ELF) you will create
hello.exe`但是只支持linux的ELF可执行文件
如果你在Windows(以及gcc / PE)上运行nuitka hello.py
,你将创建hello.exe
但是一个只有Windows的PE可执行文件(可以通过WINE在linux中执行)
Nuitka,Cython,cx_freeze不会生成与操作系统无关的可执行文件,但提供了为特定操作系统构建的方法
你正试图做两件事之一 1)在windows中构建linux。如果是这种情况,你需要配置交叉编译或在WINE中进行最终构建(即安装到wine:python,nuitika,gcc ...)
2)你在Linux中构建linux。 chmod +x hello.exe; ./hello.exe
#然后可能重命名。