前面教程,推荐过cx-frezze来打包python程序,实际上,pyinstaller比cx-frezze更好用。推荐cx-frezze是因为当时pyinstaller还不支持python3。不过现在的pyinstaller已经支持python3的封装了。
这里就来说明一下如何用pyinstaller来封装python程序。
首先第一步要下载安装pyinstaller:
下载地址:http://www.pyinstaller.org/
我这里是python3.5,所以我只需要下载pyinstaller3.2.1就行。
下载后解压出来如下:
接着进入win系统的cmd界面,在cmd状态下进入pyinstaller文件。然后输入:
#这里是在python里安装pyinstaller模块
python3 setup.py install
然后你得确保你的python已经下载并安装pywin32模块,如果没有请自行安装。
接着就可以用pyinstaller了
使用的时候要注意,和安装的时候一样需要在win的cmd模式下,且需要在pyinstaller文件下,然后输入:
#运行刚才下载的文件里面的pyinstaller.py 后面跟着指令和路径
python3 pyinstaller.py -F xxx.py
这里需要说明几个指令以及对应的含义:
-F 指定打包后只生成一个exe格式的文件。
-D 和上面相反,会生成很多依赖文件(默认选项,并不推荐)
-C 使用控制台,无界面(默认),程序运行后会有个小黑窗
-w 注意是小写,和上面相反,使用窗口,无控制台
-p 添加搜索路径,让pyinstaller找到对应的库
-i 这个比较实用,可以改变生成的exe的图标
demo:
#以下是我经常使用的指令,也就是:生成一个exe文件,改变图标,并且无控制台
python3 pyinstaller.py -F -w -i xxx.ico xxx.py
运行完成后,就会在根目录下生成对应的文件,然后exe文件就在这个文件内。
这里再推荐个网址,可以便捷的下载各种ico图片:http://www.easyicon.net/
在生成exe文件的过程中可能会有报错,这里就需要根据报错来相应做一些更改,比如我有个程序用到了tk和matplotlib,生成exe之后就会报错,报错提示在maltplotlib找不到tk的某一个模块,我的解决办法是进入matplotpy直接在代码内import相应的模块,问题就解决了。
网友评论