准备内容
- py程序文件
main.py
(以单文件为例) - 程序图标
favicon.ico
(如果需要的话),可使用在线生成透明ICO图标生成。 - python环境
创建虚拟环境
使用venv库(python3.3以后内置此库)创建虚拟环境
python3 -m venv music
参数 | 描述 | 示例 |
---|---|---|
music | 虚拟环境名称,修改为自己的虚拟环境名称即可 | music |
# 示例
python3 -m venv music
激活虚拟环境
# Mac
source ./music/bin/activate
# Windows
.\music\scripts\activate
安装pyinstaller
pip install pyinstaller
注意:安装pyinstaller,一定要在虚拟环境中安装,否则打包会丢失库,导致程序无法运行。
安装其他必须库
我编写的程序需要用到requests
登其他库,所以需要安装,根据自己的程序按需安装即可。
编写程序
示例文件为main.py
,并在虚拟环境并安装必须库。
测试运行
python3 main.py
开始打包
pyinstaller --clean -F -i favicon.ico main.py
参数 | 描述 | 示例 |
---|---|---|
--clean | 清理历史构建缓存 | --clean |
-F | 打包为单文件程序 | -F |
-i favicon.ico | 程序图标,如不需要删除即可 | -i favicon.ico |
main.py | python程序文件 | main.py |
输出以下内容表示打包成功
INFO: Building EXE from EXE-00.toc completed successfully.
打包结果
打包结果程序位于dist
目录下,与程序文件同名。
运行测试
退出虚拟环境
deactivate
总结
- pyinstaller需要安装的虚拟环境内,不能安装在全局
- 使用Mac只能打包为Mac程序,使用Windows只能打包Windows程序
参考
创建虚拟环境的四种方式(venv | pipenv | conda | poetry)
pyinstaller 打包 提示 ModuleNotFoundError: No module named ‘xxx‘