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

[经验分享] py2exe打包python为exe

[复制链接]

尚未签到

发表于 2017-4-27 12:12:14 | 显示全部楼层 |阅读模式
  第一步:建立.py文件
    Hello.py
    内容:
    print "Hello World!"


第二步:建立编译文件setup.py
    内容:
    from distutils.core import setup
    import py2exe
        setup(console=['hello.py'])或setup(windows=['hello.py']) ;;二者的区别就是前者在运行时会有一个类CMD的DOS框

    *----------------------华丽的分割符------------------------*

         一次处理多个文件:setup(console=["my_one.py", "my_two.py"], windows=["my_three.py"])

        给生成的EXE文件加一个图标:setup(windows = [{"scr_ipt":"ico.py", "icon_resources": [(1, "myico.ico")]} ])

        指定额外的文件:setup(windows=["test.py"],data_files=[("img",[r"d:\test\1.gif",r"d:\test\2.gif"]),("xml",[r"d:\test\1.xml",r"d:\test\2.xml"])])

              * 说明:这里将会在dist目录中创建两个目录img和xml,img目录里包含1.gif和2.gif这两个文件,xml目录中包含1.xml和2.xml这两个文件.如果不想创建新的目录img和xml那么只要讲这两个目录写成""空字符串就可以了,此时,py2exe会将指定文件复制到dist目录下。上面data_files是一个有两个元组作为元素的列表。第一个元组里面的img对应[r"d:\test\1.gif",r"d:\test\2.gif"] 这个有两个元素的列表,第二个元组里面的xml对应有两个元素的[r"d:\test\1.xml",r"d:\test\2.xml"]列表。

          *----------------------------华丽的分割符------------------------------

第三步:进行编译
    python setup.py py2exe
    当然要先安装环境,点击这里找到py2exe.exe,下载下来安装!注意要找对应于你所安装的python版本,然后就可以用了!


第四步:执行exe文件
    编译以后会自动生成build和dist两个文件夹,生成的exe文件在dist文件夹中,build文件夹现在对我们来说就没有用了,但要想执行exe文件,dist文件夹里的内容不能删,全部都有用的哈,原本只有一句话的硬是弄出3.6M出来,看来有得必有失啊`

#----------------------------------------------------------------------------------------------

补:我在生成的时候提示缺少msvcp71.dll文件,可能我的SYSTEM32里没有这个文件,没事,我们下载一个msvcp71.dll解压到你的dist目录即可;

另:一个标准的setup.py的代码如下:

#!/usr/bin/python
#filename:setup.py
#coding=utf-8
from distutils.core import setup
import py2exe

includes = ["encodings", "encodings.*"]
#要包含的其它库文件
options = {"py2exe":
{"compressed": 1, #压缩
"optimize": 2,
"ascii": 1,
"includes":includes,
"bundle_files": 1 #所有文件打包成一个exe文件 }
}
setup(
version = "XXX",
descri_ption = "XXX",
name = "XXX",
options = options,
zipfile=None, #不生成library.zip文件
console=[{"scr_ipt": "hello.py", "icon_resources": [(1, "hello.ico")] }]#源文件,程序图标
)

运维网声明 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-369994-1-1.html 上篇帖子: [转]python中的字符编码 下篇帖子: 用python解析html--SGMLParser
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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