Tools_将Python脚本封装成exe可执行文件
将Python脚本封装成exe可执行文件
将Python脚本封装成exe可执行文件
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
hello.pyimport time
print ("Hello World!")
time.sleep(5)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
setup.py 1#
2# 文 件 名:setup.py
3# 功能描述:cx_freeze封装Python脚本的配置文件
4#
5# 作者:Renzo 日期:2012/01/01
6#
7# 版权:可以使用、传播,但请保留出处;如需修改,请告知作者。
8#
9
10from cx_Freeze import setup, Executable
11
12
13# 首先处理path,includes,excludes,packages等内部变量
14 base = "Win32GUI"
15 path = []
16 includes = []
17 excludes = ['_gtkagg', '_tkagg', 'bsddb', 'curses', 'email', 'pywin.debugger',
18'pywin.debugger.dbgcon', 'pywin.dialogs', 'tcl', 'Tkconstants',
19'Tkinter']
20 packages = []
21
22
23# 这里可以编写客户化的封装前处理代码。例如:数据文件的处理
24
25
26
27# 配置封装的参数
28 GUI2Exe_Target_Main = Executable(
29 path = path,
30 base = base,
31
32# 生成可执行文件的主文件
33 script = "simple.py",
34
35# 生成可执行文件及一些依赖文件的目录
36 targetDir = r"dist",
37# 可执行文件的名称
38 targetName = "simple.exe",
39# 可执行文件的ico图标
40 icon = "simple.ico",
41
42 includes = includes,
43 excludes = excludes,
44 packages = packages,
45
46# 是否需要压缩模块的字节码
47 compress = True,
48
49# 是否拷贝依赖文件到目标目录
50 copyDependentFiles = True,
51
52# 是否附加脚本模块到执行文件
53 appendScriptToExe = True,
54# 是否添加脚本模块到共享库
55 appendScriptToLibrary = False,
56
57# 设置快捷方式的路径及名称
58 shortcutDir = "",
59 shortcutName = ""
60 )
61
62
63# 设置安装时软件包的描述信息
64 setup(
65 name = "Simple",
66 version = "0.1",
67 description = "My first python program",
68
69 author = "Renzo",
70 author_email = "liurenzhong@yeah.net",
71
72 url = "wwww.cnblogs.com/renzo",
73
74# 生成的可执行文件
75 executables = [GUI2Exe_Target_Main]
76 )
77
78
79# 这里可以编写客户化的封装后处理代码。例如:临时数据的清除,数据包的发布等
80
81
82
83# 到此,整个setup脚本已经完成。 5. 生成的可执行文件(xxxx.exe)
cx_freeze是用来将 Python 脚本封装成可执行程序的工具,支持最新的Python3.2版本。生成的执行文件具有跨平台性,而且运行的系统无须安装Python。目前类似功能的工具还有py2exe 和 PyInstaller,其中貌似py2exe知名度最高了,但是很久没有更新了,至于打包质量不做评价,毕竟萝卜青菜各有所爱;PyInstaller不太了解,据说工序很复杂;至于cx_freeze的强大功能及易用性,本人强烈推荐。
详细安装步骤如下:
1. 安装cx_freeze(官方下载地址:http://cx-freeze.sourceforge.net)
2. 检查cx_freeze安装是否成功(Windows OS)
3. 准备一个简单的hello.py小程序
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
print ("Hello World!")
time.sleep(5)
4. 把Python的脚本封装成可执行文件(两种方法)
- 使用参数:
CMD> cxfreeze hello.py --target-dir dist
![](http://hiphotos.baidu.com/tok340103/pic/item/0d08e3dcf2d3572cb48c52678a13632763d0c37a.jpg)
- 使用配置文件(个人推荐=>一次编写,到处可用☺):
CMD> python setup.py build
setup.py配置程序:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
2# 文 件 名:setup.py
3# 功能描述:cx_freeze封装Python脚本的配置文件
4#
5# 作者:Renzo 日期:2012/01/01
6#
7# 版权:可以使用、传播,但请保留出处;如需修改,请告知作者。
8#
9
10from cx_Freeze import setup, Executable
11
12
13# 首先处理path,includes,excludes,packages等内部变量
14 base = "Win32GUI"
15 path = []
16 includes = []
17 excludes = ['_gtkagg', '_tkagg', 'bsddb', 'curses', 'email', 'pywin.debugger',
18'pywin.debugger.dbgcon', 'pywin.dialogs', 'tcl', 'Tkconstants',
19'Tkinter']
20 packages = []
21
22
23# 这里可以编写客户化的封装前处理代码。例如:数据文件的处理
24
25
26
27# 配置封装的参数
28 GUI2Exe_Target_Main = Executable(
29 path = path,
30 base = base,
31
32# 生成可执行文件的主文件
33 script = "simple.py",
34
35# 生成可执行文件及一些依赖文件的目录
36 targetDir = r"dist",
37# 可执行文件的名称
38 targetName = "simple.exe",
39# 可执行文件的ico图标
40 icon = "simple.ico",
41
42 includes = includes,
43 excludes = excludes,
44 packages = packages,
45
46# 是否需要压缩模块的字节码
47 compress = True,
48
49# 是否拷贝依赖文件到目标目录
50 copyDependentFiles = True,
51
52# 是否附加脚本模块到执行文件
53 appendScriptToExe = True,
54# 是否添加脚本模块到共享库
55 appendScriptToLibrary = False,
56
57# 设置快捷方式的路径及名称
58 shortcutDir = "",
59 shortcutName = ""
60 )
61
62
63# 设置安装时软件包的描述信息
64 setup(
65 name = "Simple",
66 version = "0.1",
67 description = "My first python program",
68
69 author = "Renzo",
70 author_email = "liurenzhong@yeah.net",
71
72 url = "wwww.cnblogs.com/renzo",
73
74# 生成的可执行文件
75 executables = [GUI2Exe_Target_Main]
76 )
77
78
79# 这里可以编写客户化的封装后处理代码。例如:临时数据的清除,数据包的发布等
80
81
82
83# 到此,整个setup脚本已经完成。 5. 生成的可执行文件(xxxx.exe)
![](http://hiphotos.baidu.com/tok340103/pic/item/7f297633afc379317d334892ebc4b74542a91114.jpg)
6. 执行结果
恭喜你,可以把整个目标目录打包发布了。