我有一个Python脚本,我想将它编译成一个Windows可执行文件。现在,py2exe在Windows上运行得很好,但我希望能够在Linux上运行它。我的开发机器上确实有Windows,但是Linux是我的主要开发平台,我已经厌倦了仅仅为了创建.exe而重新启动Windows。我也不想购买第二个Windows许可证才能在像VirtualBox这样的虚拟机中运行。有什么想法吗?
PS:我知道py2exe没有像用Python解释器打包脚本那样准确地编译python文件。但是,无论哪种方式,结果都是您不需要安装Python来运行脚本。
发布于 2010-06-01 15:29:03
你看过PyInstaller吗
似乎通过1.4版本支持交叉编译(支持在1.5+中被删除)。关于如何在“葡萄酒”下使用PyInstaller 1.5+,请参见PyInstaller 1.5+。
文档说:
添加对交叉编译的支持: PyInstaller现在能够在Linux下运行时构建Windows可执行文件。有关详细信息,请参阅文档。
我自己没试过。
我希望它能帮上忙
发布于 2016-02-24 14:54:35
正如其他回答者所提到的,交叉编译功能从PyInstaller中删除,因为1.5。在这里,演示如何使用PyInstaller在酒下从Python脚本打包Windows可执行文件。
步骤1:安装红酒和Python
sudo apt-get install wine
wine msiexec /i python-2.7.10.msi /L*v log.txtPS:
pip (用于安装pyinstaller)。从这里下载Python安装包(例如,python-2.7.10.msi)brew cask install xquartz wine-stable。步骤2:在葡萄酒上安装PyInstaller
$ cd ~/.wine/drive_c/Python27
$ wine python.exe Scripts/pip.exe install pyinstaller
Successfully installed pyinstaller-3.1.1 pypiwin32-219步骤3:打包Python脚本
用pyinstaller包Python脚本(例如,pyinstaller)。
$ wine ~/.wine/drive_c/Python27/Scripts/pyinstaller.exe --onefile HelloWorld.py
# filename: HelloWorld.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
print('Hello World!')Windows可执行文件位于dist/中。
$ wine dist/HelloWorld.exe
Hello World!
fixme:msvcrt:__clean_type_info_names_internal (0x1e24e5b8) stub有关详细说明,请参阅这里。
发布于 2021-06-06 09:48:02
在平台上测试: Kubuntu 20.04,葡萄酒6.0,python38
下载葡萄酒和python
sudo apt install winewine the-python-exe-you-downloadedfind ~/.wine -name pip.exe,这将为您提供pip路径:/home/yourusername/.wine/drive_c/users/yourusername/Local Settings/Application Data/Programs/Python/Python38/Scripts/pip.exe
安装pyinstaller
运行wine /home/yourusername/.wine/drive_c/users/yourusername/Local\ Settings/Application\ Data/Programs/Python/Python38/Scripts/pip.exe install pyinstaller
打包你的文件
查找安装路径
find ~/.wine -name pyinstaller.exe
wine /home/yourusernmae/.wine/drive_c/users/yourusername/Local\ Settings/Application\ Data/Programs/Python/Python38/Scripts/pyinstaller.exe --onefile yourpythonfile
https://stackoverflow.com/questions/2950971
复制相似问题