前面编写的软件工具都必须运行在Python环境中,且通过命令行的方式运行,通过Python打包工具,我们可以把.py
文件封装成对应平台的运行文件,供用户执行。
常见Python打包工具
工具 | 简介 | 官网/文档地址 |
---|---|---|
py2exe | 将Python 脚本转换为Windows 可执行文件 | https://www.py2exe.org |
cx_Freeze | 跨平台的 Python 打包工具,它可以将 Python 脚本打包为可执行文件或动态链接库 | https://marcelotduarte.github.io/cx_Freeze/ |
PyInstaller | 可以将 Python 脚本打包为可执行文件或动态链接库,在 Windows、Linux 和 macOS 等多个平台上均可使用 | https://pyinstaller.org/ |
nuitka | 将python程序转换成C语言的可执行elf文件 | https://nuitka.net/ |
Briefcase | 可以便捷地将Python脚本打包成独立运行的本地应用 | https://beeware.org/project/projects/tools/briefcase/ |
pyinstaller打包示例
以主文件main.py
为例,两种打包方式如下:
- 将文件打包到
dist
文件夹,当中包含链接库等多个文件:
pyinstaller -D main.py
- 将文件打包成
dist
目录下的独立可执行文件,-F
参数代替-D
参数:
pyinstaller -F main.py
- 隐藏控制台和设置图标
运行上述生成的可执行文件,发现会弹出控制台窗口,且图标是pyinstaller
默认给的图标,我们可以通过如下命令进行设置:
pyinstaller -F -w -i program.ico main.py
其中,-w
相当于--noconsole
,程序在运行时会去掉控制台。-i
命令用于给程序指定图标,对于Windows系统,要求格式为.ico
,Mac OSX为.icns
。
- 可能存在的问题
(1)打包过程中,杀毒软件可能报病毒,禁用杀毒软件即可。
(2)在添加程序ico
的过程中,我们的资源管理器可能还没刷新,显示的程序图标还是pyinstaller
默认图标,但将程序文件移到别的目录,或者改变dist
的查看方式——如从详细列表改为大图标,则可刷新程序图标。