当Python项目编码完成之后,有时候我们需要让其在没有Python环境的电脑上运行,此时我们就需要将Python项目进行打包了。
本篇文章主要是基于Python的第三方库pyinstaller进行的。使用pyinstaller打包Python项目,相对于C和C#项目的打包要简单很多。
项目地址
pyinstaller git
pyinstaller安装
pip install pyinstaller
环境要求
python版本:2.7或3.4-3.7,当需要使用字节码加密时需要PyCrypto 2.4+
系统要求:Windows、Linux、macOS都支持,具体使用说明请看官网介绍。本次实践主要在win10上进行。
参数介绍
官网参数详细介绍,在使用pyinstaller打包Python项目的时候,需要指定一些参数,详细介绍请参加官网。也可以通过pyinstaller -h命令查看pyinstaller的参数使用介绍。
常用参数介绍:
- -D,–onedir:创建一个文件夹包含exe文件(默认)
- -F,–onefile:打包之后只会生成一个exe的文件
- -c,–console,–nowindowed:使用控制台窗口(默认)
- -w,–windowed,–noconsole:使用窗口显示
- -i:设置打包exe的图标,默认使用的是Python的图标
单个py文件打包
import cv2
img = cv2.imread("logo.webp")
cv2.imshow("logo",img)
cv2.waitKey()
这个程序展示了使用OpenCV来读取图片然后显示,编辑完成之后进入到该目录下,运行pyinstaller -F exmple.py,看到如下信息表示打包成功:
在项目目录下发现多了dist和build两个目录和一个*.spec的文件。
打开dist目录,可以发现下面多了一个example.exe的可执行文件,双击运行发现并没有显示图片,此时我们需要将logo.webp拷贝到当前目录下,然后再运行exe程序就可以看到如下结果
如果不想显示控制台打包的时候可以加上-w参数,pyinstaller -F -w example.py,此时打包生成的exe程序执行时不会出现控制台窗口。
修改exe的图标
默认使用的图标如下
ico下载网址:https://www.easyicon.net/
pyinstaller -F -w -i=panda.ico example.py
通过-i参数可以指定ico的图标,如果生成的exe的图标没有变化试着将ico图标文件拷贝到exe的相同目录下。
最近开通了微信公众号,在微信公众号上,分享了一些资料,搜索"Python机器学习之路"关注我即可获取,欢迎来找我玩。