起因
最近在工作中用python实现了部分自动化的功能,但是呢,电脑中若没有安装python,此时如果将编写的脚本拷到他那里去用,就会涉及到一个跨环境的问题。后经查阅,有一款“神器”—-pyinstaller,可以通过它将你写好的py脚本打成exe的包,然后在windows下,即使没有python环境,也可以运行脚本。
环境
- Python3.6.1
- Windows10
安装pyinstaller
通过下面的命令,可以直接进行安装,个人比较习惯用pip。
pip install pyinstaller
安装的过程中,它会自动下载其他三个用到的第三方库,没有影响的,耐心等待即可,昨天晚上安装的忘记截图了。就不上图了。
安装完,我发现我的Script下多了好多文件,如下图:
pyinstaller参数介绍
我使用的时候是直接进入了当前Script下安装好pyinstaller的路径下执行的cmd,此时可以直接输入下面命令,如下图:
pyinstaller --help
然后让我们看看它的帮助文档,其中我用红框标出来的便是中点选项:
解释一下
-D 创建一个包含exe的文件夹(此选项是默认选项,若使用命令的时
候什么都不带,默认为此选项)
-F 创建一个exe文件(我一般直接用此选项,因为看起来很简洁,
就一个exe文件,跟windows安装似的)
-n 设置名字(默认生成的exe文件名字就是python脚本的名字)
-c 打开一个标准输出的控制台窗口(默认选项,说简单一点
就是你在打包过程中遇到的一些日志输出)
-w 与-c相反,不输出控制台的信息
-i 这个选项有必要重点说一下,为了美观而设计的,生成的exe设置
的图标,后面我会重点讲一下。
如何使用?
有了上面的参数就好说了,使用命令如下:
当前路径:Python的Script下安装好pyinstaller的路径下执行的cmd,此路径下还需要有你的图标文件(如果你想改exe图标的话),还需要把你的python脚本也放在当前路径下。
pyinstaller -F -i sum.ico xxxx.py
(-F 是只生成一个exe文件。-i是为了给他图标)
执行成功后,会如下图:
当然,如果你是第一次运行,它输出的日志远不止如此,我这里是因为已经运行过好几次了,我们可以看一下每次生成,它会在当前的目录下对应存放对应的文件,如下图:
而你成功生成的exe文件在dist文件夹当中,如下图:
另一个文件夹build 中,是对应在你生成exe过程中一些日志之类的文件,如下图:
关于-i选项需要注意的点
这个参数其实是比较坑爹的,如果你用了此参数,那么请注意一下几点:
- 不要随意更改png、jpg格式图片,直接修改为ico的格式图片,因为这样并不管用,会报一些很奇葩的错误
- 这里我给出对应的网址,你可以先从这个网址找图片:https://www.easyicon.net/
- 通过上面的网址,下载后依然遵循第一条,不能直接修改图片后缀格式,用https://www.ico.la/这个网址去处理你的图片。最终输出的图片为xxx.ico这样的标准格式
通过以上三点,再去用-i参数,你会发现很神奇的成功显示图标,且命令行不会报错。
成功的喜悦
把我生成的exe拷到桌面运行一下看看效果!
这是一个用python写的读取execel数据,生成对应文本内容的小工具。可以看到这个exe确实很大。同样python脚本源文件才4kb,生成的exe33MB。。。不多说了。执行下走起!~
执行成功,是我源代码中写到的,左侧是运行后生成的txt文档!
小Tips (黑框一闪而过)
生成的exe文件你们执行的话,cmd黑框肯定会一闪而过,但是没有关系,教你们一个方法,只需要在源码中加入下面的代码即可暂停住cmd黑框,因为cmd中通过pause的命令是可以让黑框暂停住的,我之前的那篇爬取博客访问量中也说到过哟,利用pause去debug我的程序。。附上网址:http://blog.youkuaiyun.com/s740556472/article/details/78239204
import os
if __name__ == '__main__':
xxxx() #你的逻辑函数
os.system('pause') #这句话才是重点!
至此完!