在python中比较常用的python转exe方法有三种,分别是cx_freeze,py2exe,PyInstaller。py2exe恐怕是三者里面知名度最高的一个,但是同时相对来说它的打包质量恐怕也是最差的一个。pyinstaller打包很好,但是操作工序较为复杂。推荐使用cx_freeze打包py文件。下面开始介绍。
1、下载cx_Freeze。 http://sourceforge.net/projects/cx-freeze/files/ 根据自己的系统类型和Python版本下载合适的类型,这里下载的是:cx_Freeze-4.3.3.win32-py2.7.msi
2.安装
图形界面安装cx_Freeze-4.3.3.win32-py2.7.msi完后,它会自动识别python安装的位置,自己安装到python安装目录下面。之后可以看到cxfreeze工具所在目录如下:
3.创建setup.py配置文件
创建setup.py(可以是其他名字)。将你要打包的脚本与setup.py放在同一个目录下(本例f.py、setup.py都放在D盘),不要有中文名字.setup.py的写法参考http://cx-freeze.readthedocs.org/en/latest/distutils.html#distutils
vim setup.py
#coding:utf-8 from cx_Freeze import setup,Executable setup( name = "f", version = "1", description = "To get picture from bing.com", executables = [Executable("f.py")] )
附:测试文件f.py(作用是创建一个excel文件)
#coding: utf-8 """ . , |\/| bd "n. / _,"n.___.,--x. <co>'\ Y ~~ \ L 7| H l--'~\\ (|| H l H |`' H [ H [ ____//,]____//,]___ _BY : CAIYAN """ import xlwt from datetime import datetime font0 = xlwt.Font() font0.name = 'Times New Roman' font0.colour_index = 2 font0.bold = True style0 = xlwt.XFStyle() style0.font = font0 style1 = xlwt.XFStyle() style1.num_format_str = 'D-MMM-YY' wb = xlwt.Workbook() ws = wb.add_sheet('A Test Sheet') ws.write(0, 0, 'Test', style0) ws.write(1, 0, datetime.now(), style1) ws.write(2, 0, 1) ws.write(2, 1, 1) ws.write(2, 2, xlwt.Formula("A3+B3")) wb.save('example.xls')
4.编译
在D盘会生成与python setup.py build命令中的build同名的文件夹,点击进去可以看到生成的f.exe可执行文件,双击f.exe即执行f.py生成example.xls
――――――――――――――――――――――
另外一种不创建setup.py的方法:
在cx_Freeze-4.3.3.win32-py2.7.msi安装正确后,也可直接打包,
cmd进入D:\Python27\Scripts>,打包命令为:
cxfreeze D:\f.py --target-dir D:\dist
f.py 是你要打包的文件,dist为目标文件夹,打包后会生成dist目录,里面就有打包后的可执行文件。
注意:
1、将exe放到其他机子上运行,弹出“找不到msvcr100.dll“。手动将”msvcr100.dll“拷贝到dist目录下即可。也许是cxfreeze的bug
2、要去掉exe里的后面黑色控制台窗口就在前面的命令改成:
cxfreeze D:\f.py --target-dir D:\dist --base-name=win32gui