设为首页 收藏本站
查看: 1468|回复: 0

[经验分享] 将Python脚本封装成exe可执行文件

[复制链接]

尚未签到

发表于 2015-4-25 09:12:54 | 显示全部楼层 |阅读模式
  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)
DSC0000.jpg
  3. 准备一个简单的hello.py小程序


DSC0001.gif DSC0002.gif hello.py


import time
print ("Hello World!")
time.sleep(5)
  4. 把Python的脚本封装成可执行文件(两种方法)


  •   使用参数:
    CMD> cxfreeze hello.py --target-dir dist


DSC0003.jpg DSC0004.jpg


  • 使用配置文件(个人推荐=>一次编写,到处可用?):
    CMD> python setup.py build
DSC0005.jpg
DSC0006.jpg
  setup.py配置程序:




setup.py


1 #
2 # 文 件 名:setup.py
3 # 功能描述:cx_freeze封装Python脚本的配置文件
4 #
5 # 作者:Renzo    日期:2012/01/01
6 #
7 # 版权:可以使用、传播,但请保留出处;如需修改,请告知作者。
8 #
9
10 from 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.iyunv.com/renzo",
73
74     # 生成的可执行文件
75     executables = [GUI2Exe_Target_Main]
76     )
77
78
79 # 这里可以编写客户化的封装后处理代码。例如:临时数据的清除,数据包的发布等
80
81
82
83 # 到此,整个setup脚本已经完成。
  5. 生成的可执行文件(xxxx.exe)

DSC0007.jpg

  6. 执行结果
DSC0008.jpg
  
  恭喜你,可以把整个目标目录打包发布了。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-60434-1-1.html 上篇帖子: python类库32[多线程同步Lock+RLock+Semaphore+Event] 下篇帖子: python语法32[global与nonlocal比较]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表