在日常中我们写好的pyhton脚本每次运行时都需要安装软件,但是这样造成了一个不好的现象就是,你写好脚本后需要供别人使用的时候,别人没下载软件则无法运行脚本,很麻烦。
所以我们只需要将Python程序打包为exe文件以后,发送给任何人都可以使用,我们打包成exe需要使用到的工具是pyinstaller模块(Linux系统也适用)。
首先我们先安装pyinstaller
Python 默认并不包含 PyInstaller 模块,因此需要自行安装 PyInstaller 模块。安装 PyInstaller 模块与安装其他 Python 模块一样,使用 pip 命令安装即可。在命令行输入如下命令:pip install pyinstaller
PyInstaller生成可执行程序
pyinstaller 选项 Python 源文件:pyinstaller -F py文件路径
也可以先在cmd中 cd 进入到文件路径中,然后输入:
pyinstaller -F 文件名
不管这个 Python应用是单文件的应用,还是多文件的应用,只要在使用 pyinstaller命令时编译作为程序入口的 Python 程序即可。
例子:
我们简单创建一个文件:price.py
import time
def main():
for i in range(3):
print(“开始打印第%s次” % i)
time.sleep(2) # 沉睡两秒后继续执行
if name == ‘main’:
main()
print(“执行完毕”)
接下来使用命令行工具进入到此 app 目录下,执行如下命令:
我们先在cmd进入到文件地址,执行pyinstaller -F price.py
将看到详细的生成过程。当生成完成后,将会在此 app 目录下看到多了一个 dist 目录,并在该目录下看到有一个 app.exe 文件,这就是使用 PyInstaller 工具生成的 EXE 程序。
打包后
在 pyinstaller 选项 Python 源文件 中,选项处时有很多参数的:
例如(其中部分):
-F,-onefile产生单个的可执行文件
-D,–onedir产生一个目录(包含多个文件)作为可执行程序
-a,–ascii不包含 Unicode 字符集支持
-d,–debug产生 debug 版本的可执行文件
但是这样打包以后的exe是原生图标,对于爱美人士来说是一件很难接受的事情,不过我们可以是使用 -i 加上需要显示的图片,这样就能更改打包后exe文件的图片了。 相关示例如下:
pyinstaller -F price.py -i a.ico
所需设置的图片名格式得为ico后缀的才行,于是打包的exe文件就是a.ico
的样子了。
注:使用pyinstaller -F flower.py
打包完成的exe文件运行时会弹出黑色的框(命令行窗口),为了使运行exe文件不再出现黑框,加上-w参数,即pyinstaller -F -w flower.py
,则运行exe文件时黑框便没有了。
两种打包方式
pyinstaller -F flower.py
,打包就一个excel文件,缺点是exe启动慢
pyinstaller -D flower.py
,打包文件出来多,但启动比较快。