PyInstaller:把你的Python转为Exe

把Python程序转为可执行的EXE文件,之前已经介绍过,像py2exebbfreeze。 以我自己使用的经历来看,这两款都还不错,比较适合简单的Python程序,如果你加载的第三方类库比较多的话,不仅体积大,而且可能打包之后还是无法执 行。而且有的打包之后,执行时不是单个窗口,有一个类似Console的黑框框(听说可以取消,但不知道如何配置)。之前写过一个画宝宝身高和体重趋势的 Python程序,一直想把它打包,但无奈,这两款软件都没能成功。

今天搜索一番,发现还有一个工具,当然不止一个啦,StackOverFlow里面讨论中,比较推荐PyInstaller, 而且让我意外的是,PyInstaller本身并不属于Python包,所以你无须把它放在site-packages文件夹内。安装过程也比较简单:

1. 你从官网下载之后,解压到某个目录,比如C:ItDeveloppyinstaller15

2.  Pyinstaller不需要安装,但是需要进行一个配置,配置信息跟当前系统有关,配置结果保存在config.dat文件内,所以如果你更换python版本,需要重新执行这个配置命令:

1
python Configure.py

要能够在正确执行这个命令,你首先必须配置环境变量:把python的安装路径添加到path变量中。然后cmd到pyinstaller的根目录。

C:ItDeveloppyinstaller15>python Configure.py
ERROR: Python 2.6+ on Windows support needs pywin32
Please install http://sourceforge.net/projects/pywin32/

C:ItDeveloppyinstaller15>python Configure.py
I: computing EXE_dependencies
I: Finding TCL/TK…
W: library coredll.dll required via ctypes not found
I: Analyzing C:ItDeveloppython27DLLs\_tkinter.pyd
I: Adding tcl85.dll dependency of _tkinter.pyd

I: … resource update available
I: Testing for Unicode support…
I: … Unicode available
I: testing for UPX…
I: …UPX unavailable
I: computing PYZ dependencies…
I: done generating config.dat

如果配置过程中提示你需要安装pywin32,那么代表你之前没有安装它,下载安装完即可。结果提示保存在config.dat文件中。其中config.dat文件存放在pyinstaller的根目录。

3. 创建spec文件:

1
2
C:ItDeveloppyinstaller15>makespec.py -F -w --icon=D:BabyWandHsrcfaviconw.ic
o D:BabyWandHsrcBabyWandH.py

icon是你喜欢的图标文件,py为你要打包的程序。执行完毕之后,在pyinstaller安装路径下会自动生成一个和py文件的文件名相同的文 件夹,文件夹内有spec文件。本例子中C:ItDeveloppyinstaller15BabyWandHBabyWandH.spec。
4. 最后开始build生成exe文件,首先把上一步生成的spec文件,拷贝到与你py源文件的相同目录下D:BabyWandHsrc,然后执行:

1
C:ItDeveloppyinstaller15>build.py D:BabyWandHsrcBabyWandH.spec

在D:BabyWandHsrcdist目录下就已经生成了你所需要的exe文件。

参考资料:pyinstaller官方pdf

原文地址:https://www.cnblogs.com/mmix2009/p/3221001.html