导语

正好,博主今天帮人家写项目需要将Python代码打包成exe软件,便这里跟大家分享一下关于使用pyinstaller打包python代码的一般步骤。

正文

导入安装

由于 Pyinstaller 并不是Python内置的标准库,所以在使用之前,我们需要使用pip对其进行导入。命令行参考代码

pip install pyinstaller

1.png
这里博主已经安装过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选项的作用之大了。
2.png

在使用具体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 的名字

通过阅读上表,我们不难知道,若想要只生成一个目标打包文件,我们只需要简单地指定几个选项即可。

需要注意的是选项英文是区分大小写的哦,例如-F不可写成-f

这里博主以一个简单的打印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.
    3.png

最后就可以到存放demo.py文件下的dist目录运行exe程序啦。
3.png

进阶之路

当你迫不及待地去查看你的第一个可执行文件的时候你会发现,咦,我不是只写了几行代码吗?为什么突然之间就变成几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

结语

好了,今天的分享就到此结束啦,有疑问欢迎评论区下方留言,博主看到后会第一时间回复。

Last modification:June 21, 2021
如果觉得我的文章对你有用,请随意赞赏