一. Pyinstaller 简介
作用:
PyInstaller 将 Python 应用程序及其所有依赖项捆绑到单个软件包中。用户无需安装 Python 解释器或任何模块,即可运行打包后的应用程序。
支持情况(兼容性):
PyInstaller 支持 Python 3.8 及其更新版本;
能正确捆绑 numpy、matplotlib、PyQt、wxPython 等许多主流 Python 包。
PyInstaller 已经过 Windows、MacOS X 和 Linux 测试。
注意事项:
不过,它并不是一个交叉编译器;要制作 Windows 应用程序就需要在 Windows 上运行 PyInstaller,要制作 Linux 应用程序就需要在 Linux 上运行它,依此类推。
一般来说,我们使用Pyinstaller打包出于如下原因:
- 君子式防止他人得到该项目的源代码(很容易破解);
- 开发过程中用了一些第三方库
如果把做好的代码项目供他人使用,需要对方电脑上拥有Python环境;
而经过Pyinstaller打包后就可以在单独的文件夹中打开.exe
文件(开箱即用)即可
二. Pyinstaller 安装及使用
下面来一段Pyinstaller的使用示例:
- 如图,这是一段简单的Python项目代码,作用是打开我的网站(opentap.top):
1 | import webbrowser #导入了webbrowser模块 |
- 我想点击某个快捷方式直接先从桌面打开我的网站,于是我使用Pyinstaller打包:
[^注]: 下载失败的请 配置国内镜像源 或 自行科学上网
- 首先让我们学习一下pyinstaller打包的基础指令:
格式:
pyinstaller xxx.py(项目名) -X -Y -Z(各种命令模块)
一些简单有效的的命令模块:
-F, --onefile
创建一个文件捆绑的可执行文件。
人话:
-F
把生成的文件放入同一个文件夹中
-w, --windowed, --noconsole
Windows 和 Mac OS X:不为标准 I/O 提供控制台窗口。上 Mac OS 这也触发了构建 Mac OS .app 捆绑包。在 Windows 上,这个 如果第一个脚本是“.pyw”文件,则会自动设置选项。这 选项在 *NIX 系统上被忽略。
人话:
-w
打开 生成的.exe可执行文件 时 隐藏 cmd(windows控制台) 窗口
-i <FILE.ico or FILE.exe,ID or FILE.icns or Image or “NONE”>, --icon <FILE.ico or FILE.exe,ID or FILE.icns or Image or “NONE”>
FILE.ico:将图标应用于 Windows 可执行文件。
FILE.exe,ID:提取 带有 EXE 中 ID 的图标。
FILE.icns:将图标应用于 .app 捆绑包 Mac 操作系统。
如果输入的图像文件不是平台格式(ico 在 Windows 上,在 Mac 上,PyInstaller 尝试使用 Pillow 来翻译 图标转换为正确的格式(如果安装了 Pillow)。使用“NONE”表示不 应用任何图标,从而使操作系统显示一些默认值(默认:apply PyInstaller 的图标)。此选项可以多次使用。
人话:
-i [文件名].ico
怎么让生成的.exe程序带上自己想要的图标?
- 把那张图片文件格式改为.ico
- 把图片.ico与代码.py放在同一个文件夹中(也就是把图片.ico放入项目文件夹里)
- 终端命令中加入 -i xxxx(图片名).ico
- 打开终端 – 输入pyinstaller打包命令 – 回车
1 | pyinstaller opentap.top.py -F -w -i ciallo.ico |
- 整理出单独文件 方便今后文件管理
未完待续
1 | pyinstaller Hands.py -- add-data="D:\Desktop\try\Lib\site-packages\mediapipe\modules;mediapipe/modules" -F -w -i ciallo.ico |
1 | pyinstaller Gesture_volume_control.py -- add-data="D:\Desktop\try\Lib\site-packages\mediapipe\modules;mediapipe/modules" -F -w -i ciallo.ico |
参考文献: