py2exe
从Windows工作正常,但我想能够从Linux运行它。虽然我的开发机上有Windows,但Linux是我的主要开发平台,我已经厌倦了不得不重启到Windows才能创建.exe
的情况。也不想购买第二个Windows许可证来运行VirtualBox等虚拟机。有什么办法吗?PS:我知道
py2exe
并没有像编译Python文件那样编译Python文件,而是将您的脚本与Python解释器打包在一起。但无论哪种方式,结果都是您无需安装Python即可运行脚本。py2exe
从Windows工作正常,但我想能够从Linux运行它。虽然我的开发机上有Windows,但Linux是我的主要开发平台,我已经厌倦了不得不重启到Windows才能创建.exe
的情况。也不想购买第二个Windows许可证来运行VirtualBox等虚拟机。有什么办法吗?py2exe
并没有像编译Python文件那样编译Python文件,而是将您的脚本与Python解释器打包在一起。但无论哪种方式,结果都是您无需安装Python即可运行脚本。正如其他回答者所提到的,自从1.5
版本以来,PyInstaller已经移除了交叉编译功能。这里将展示如何使用PyInstaller在Wine下打包Python脚本为Windows可执行文件。
sudo apt-get install wine
wine msiexec /i python-2.7.10.msi /L*v log.txt
附注:
新版本的Python已经包含了pip
(用于安装 pyinstaller
),从这里下载Python安装包(例如,python-2.7.10.msi
)。
对于macOS用户,请使用brew cask install xquartz wine-stable
。
$ cd ~/.wine/drive_c/Python27
$ wine python.exe Scripts/pip.exe install pyinstaller
Successfully installed pyinstaller-3.1.1 pypiwin32-219
使用pyinstaller
将Python脚本(例如HelloWorld.py
)打包。
$ 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
详细说明请参考这里。
wine python appli.py
运行。 - Jithin Pavithran你看过了PyInstaller吗?
它似乎通过版本1.4支持跨平台编译(在1.5+版本中删除了此功能)。参见此答案以了解如何使用Wine在PyInstaller 1.5+下进行跨平台编译。
文档说:
添加对跨平台编译的支持:现在,当在Linux下运行时,PyInstaller能够构建Windows可执行文件。有关详细信息,请参阅文档。
我自己没有尝试过。
希望这会有所帮助。
wine python-3.8.9.exe
,然后按照下面的说明进行操作wine C:/Python38/python.exe -m pip install --upgrade pip
wine C:/Python38/python.exe -m pip install -r requirements.txt
,其中requirements.txt
应包含PyInstaller本身wine C:/Python38/Scripts/pyinstaller.exe ...
在WINE中安装Python 3.8:
C:\\Python38
欢迎阅读文章以获取更多详细信息。
测试平台: Kubuntu 20.04、wine 6.0、python38
从https://www.python.org/downloads/release/python-3810/下载 Windows 版本的 Python。
安装 Wine
sudo apt install wine
打开终端并运行
wine 你下载的 Python exe 文件
运行
find ~/.wine -name pip.exe
这将给出 pip 的路径:
/home/你的用户名/.wine/drive_c/users/你的用户名/Local Settings/Application Data/Programs/Python/Python38/Scripts/pip.exe
运行 wine /home/你的用户名/.wine/drive_c/users/你的用户名/Local\ Settings/Application\ Data/Programs/Python/Python38/Scripts/pip.exe install pyinstaller
查找安装路径
find ~/.wine -name pyinstaller.exe
wine /home/你的用户名/.wine/drive_c/users/你的用户名/Local\ Settings/Application\ Data/Programs/Python/Python38/Scripts/pyinstaller.exe --onefile 你的 Python 文件名