如何在GitHub Releases上传各操作系统对应的独立单可执行发布文件
可以实现分操作系统预编译单可执行程序,终端用户下载单个文件即可直接运行。你在macOS上打包后上传自动变成.app.zip,是因为PyInstaller默认会将GUI程序打包为.app应用包(本质是文件夹结构),GitHub会自动把上传的文件夹压缩为zip包,调整打包参数即可生成真正的单个可执行文件。
各平台打包操作方案
macOS 平台
执行打包命令时添加--onefile参数强制生成单二进制文件,GUI程序额外添加--windowed参数禁用终端窗口:
pyinstaller --onefile --windowed -n program_v1.0 program.py
打包完成后在dist目录下会生成单个名为program_v1.0的二进制文件,直接上传该文件到GitHub Releases即可,不会被自动压缩。
提示:如果需要兼容更低版本的macOS,打包前先执行
export MACOSX_DEPLOYMENT_TARGET=目标版本号(比如10.15)再运行打包命令即可。
Windows 平台
在Windows设备上执行如下打包命令:
pyinstaller --onefile --windowed -n program_v1.0 program.py
最终dist目录下会生成program_v1.0.exe单文件,用户下载后双击即可直接运行。
Linux 平台
在Linux设备上执行如下打包命令:
pyinstaller --onefile --windowed -n program_v1.0 program.py
最终dist目录下会生成单个二进制文件,用户下载后只需执行一次chmod +x program_v1.0赋予执行权限即可运行。
提示:Linux平台打包的二进制仅兼容同系列相近版本的发行版,如需覆盖更多用户,建议在较旧的LTS版本发行版(比如Ubuntu 20.04)上执行打包操作。
GitHub Releases 上传注意事项
- 三个平台的产物命名建议添加系统后缀区分,比如
program_v1.0_macos、program_v1.0_windows.exe、program_v1.0_linux - 可以在Release描述中补充Linux系统需要先赋予执行权限的操作提示
内容的提问来源于stack exchange,提问作者tcffm
相关产品推荐
相关产品推荐

