![](/img/trans.png)
[英]How to programatically detect if code is running in nuitka compiled or python interpreted mode
[英]How to run a Nuitka compiled Python executable
我正在Ubuntu 14.04上试验Nuitka并尝试创建并运行可执行文件。 我有一个文件hello.py
与内容
print("Hello please")
我使用命令nuitka hello.py
将其转换为hello.exe
。 但是,当我尝试使用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位操作系统上运行它吗? 如果是这样,任何人都知道如何解决它?
根据Nuitka手册
生成的文件名将是所有平台上的program.exe,这并不意味着它不能在非Windows上运行! 但是如果你编译程序我们不想覆盖它,或者不确定哪一个是编译形式,哪一个不是。
如果你nuitka hello.py on Ubuntu (and thus
gcc ELF) you will create
nuitka hello.py on Ubuntu (and thus
运行nuitka hello.py on Ubuntu (and thus
ELF) you will create
hello.exe`但是只有linux的ELF可执行文件
如果你在Windows上运行nuitka hello.py
(以及gcc / PE),你将创建hello.exe
但是一个只有windows的PE可执行文件(可以通过WINE在linux中执行)
Nuitka,Cython,cx_freeze不会生成与操作系统无关的可执行文件,但提供了为特定操作系统构建的方法
你正在尝试两件事之一1)在Linux中构建windows。 如果是这种情况,你需要配置交叉编译或在WINE中进行最终构建(即安装到wine:python,nuitika,gcc ...)
2)你在Linux中构建linux。 chmod +x hello.exe; ./hello.exe
chmod +x hello.exe; ./hello.exe
然后可能重命名。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.