导语
正好,博主今天帮人家写项目需要将Python代码打包成exe软件,便这里跟大家分享一下关于使用pyinstaller打包python代码的一般步骤。
正文
导入安装
由于 Pyinstaller 并不是Python内置的标准库,所以在使用之前,我们需要使用pip对其进行导入。命令行参考代码
pip install pyinstaller
这里博主已经安装过pyinstaller啦。若安装失败,可以考虑换源再尝试。pip换源方法请参考博主之前写的教程,
简单演示
一般的,使用Pyinstaller打包应用程序都是在cmd(命令行面板)进行的。为了方便工作,进入命令行面板之后,我们需要切换命令行的工作路径,可以参考以下命令:
cd C:\xxx\xxx
# 例如我的py文件放在桌面的demo文件夹内
cd C:\Users\Administrator\Desktop\Demo
切换好工作路径之后,我们便可以正式开始打包应用程序啦(当然前提是你的py代码已经准备就绪)
pyinstaller的使用是非常简单的,参考语法为:
pyinstaller -option dmeo.py
# -option为可选项 demo.py为你需要打包的代码的完整名称(不可省略后缀)
最简单粗暴的方式就是不要-option(可选项),直接打使用 pyinstaller demo.py 。但是这样也有个烦恼,就是你的exe程序会被淹没在无边的附加文件中,而且更可气的是你还不能移除他们(否则程序无法运行),由此可见-option选项的作用之大了。
在使用具体option选项之前,我们需要简单的了解一下都有哪些选项以及其对应的作用是什么
序号 | 可选项 | 作用 |
---|---|---|
1 | -h | 查看Pyinstaller的帮助文档,一般单独使用 |
2 | -F | 产生成单个可执行文件(exe) |
3 | -D | 产生一个目录(包含多个文件)作为可执行程序 |
4 | -i | 指定可执行文件的logo图标 |
5 | -d | 产生 debug 版本的可执行文件 |
6 | -w | 指定程序运行时不显示命令行窗口(仅对 Windows 有效) |
7 | -c | 指定使用命令行窗口运行程序(仅对 Windows 有效) |
8 | -o | 指定 spec 文件的生成目录。如果没有指定,则默认使用当前目录来生成 spec 文件 |
9 | -p | 置 Python 导入模块的路径(和设置 PYTHONPATH 环境变量的作用相似)。也可使用路径分隔符(Windows 使用分号,Linux 使用冒号)来分隔多个路径 |
10 | -n | 指定项目(产生的 spec)名字。如果省略该选项,那么第一个脚本的主文件名将作为 spec 的名字 |
通过阅读上表,我们不难知道,若想要只生成一个目标打包文件,我们只需要简单地指定几个选项即可。
这里博主以一个简单的打印Python之禅为例:
py代码如下:
import this
from time import sleep
print(this)
sleep(100) # 若不添加此行,你看到的将只是一个匆匆闪过的命令行面板
进入命令行,输入命令打包(路径以及文件名请根据自己的实际情况而定)
cd C:\Users\Administrator\Desktop\pyinstaller
pyinstaller -F demp.py
通常情况下,只要打包日志文件最后两行分别显示以下内容即表示成功。
- Appending archive to EXE to:......
- Building EXE from EXE-00.toc completed successfully.
最后就可以到存放demo.py文件下的dist目录运行exe程序啦。
进阶之路
当你迫不及待地去查看你的第一个可执行文件的时候你会发现,咦,我不是只写了几行代码吗?为什么突然之间就变成几M甚至几十M了?
这是因为python是一门解释型语言,你写的py代码之所以可以执行,是因为别的程序猿已经帮你写好了相应的底层代码(通常是用C++)。同样的,当你将你的代码打包成exe可执行文件,即与python解释器分离之后,你的软件需要相应的“补丁”才能够运行。
所以,为了减小你的软件的大小,在编写py代码时,博主建议使用 from xxx import xxx 来代替 import xxx,这样可以避免在打包时直接导入整个第三方库。当然,这并不是说要将所有的import都替换成from xx import xx才好,若是这样反而会降低你的代码的可读性,请根据实际情况选择使用。
有些小伙伴可能不高兴,凭啥我写的软件要用别人的logo(默认情况下,打包生成的exe文件图标为一条蟒蛇和一个代码运行符号),有没有办法修改呢。这个当然是有的,只需要简单的使用 -i 选项并给出图标文件路径即可。
这里需要注意的是,图标文件必须是ico格式(.ico后缀),大小一般是1616或3232。不能简单的通过修改后缀实现哦,网上大把在线转换的工具,在线转换一下即可。
当小伙伴们有能力之后,为软件写了UI(用户交互界面)之后,不想要出现命令行那个黑框框,只需要增加-w选项即可。
另外有一个问题需要注意的是,在多少位操作系统打包的,就只能在多少位操作系统上运行哦。例如在win64位系统上打包的exe文件,不能在win32位系统上使用。博主之前就遇到过这个问题,在此提醒一下。
综上所述,博主一般使用的打包命令为:
pyinstaller -F -i logo.ico -w demo.py
结语
好了,今天的分享就到此结束啦,有疑问欢迎评论区下方留言,博主看到后会第一时间回复。
One comment
想想你的文章写的特别好www.jiwenlaw.com