Python打包exe文件方法汇总【4种】.doc 立即下载
2025-01-05
约6.3千字
约8页
0
90KB
举报 版权申诉
预览加载中,请您耐心等待几秒...

Python打包exe文件方法汇总【4种】.doc

Python打包exe文件方法汇总【4种】.doc

预览

免费试读已结束,剩余 3 页请下载文档后查看

10 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

Python打包exe文件方法汇总Python作为解释型语言,发布即公开源码,虽然是提倡开源但是有些时候就是忍不住想打包成exe,不仅仅是为了对代码进行加密,而是为了跨平台。防止有些没有安装py环境的电脑无法运行软件。
目录对python代码打包成exe的方式有4种,py2exe,pyinstaller,cx_Freeze,nuitka,分别对以上4种方法介绍,欢迎纠错和提供新的办法。
py2exe
介绍
py2exe是一个将python脚本转换成windows上的可独立执行的可执行程序(*.exe)的工具,这样,你就可以不用装python而在windows系统上运行这个可执行程序。
优点:
可以把python打包成exe
缺点:
打包好的exe只能在相同的系统下运行,比如你在XP系统用py2exe打包好的exe只能在XP上运行,在win7上肯定有问题,而且也是存在在别的XP机子上也可能不能运行,因为一些别的机子可能会缺少dll文件什么的,作者我当时之所以抛弃py2exe也是因为这个原因;

打包的文件也需要打包同exe下的dll,和一些库的压缩包,不然exe根本跑不起来

打包时候报始终报RuntimeError:BeginUpdateResource错误,就需要拷贝dll文件。C:\WINDOWS\system32\python27.dll复制到dist目录

总之毛病一大堆,基本上已经舍弃了

使用
下载地址

安装好后,准备进行打包

准备一个文件x.py,这个x.py就是想要打包成exe。

然后这x.py同目录下新建一个setup.py,内容如下:

#coding=utf-8
fromdistutils.coreimportsetup
importpy2exe
includes=["encodings","encodings.*"]
#要包含的其它库文件
options={"py2exe":
{
"compressed":1,#压缩
"optimize":2,
"ascii":1,
"includes":includes,
"bundle_files":1#所有文件打包成一个exe文件
}
}
setup(
options=options,
zipfile=None,#不生成library.zip文件
console=[{"script":"x.py","icon_resources":[(1,"Q.ico")]}]#源文件,程序图标)
然后这cmd窗口下运行:
pythonsetup.pypy2exe
py2exe使用方法(含一些调试技巧,如压缩email类)

pyinstaller
PyInstaller除了win32平台外还支持Linux,Unix平台.py2exe的用法在前面的博文里已经有了,现在看看PyInstaller,pyinstaller是目前应用最多的python打包工具,也是我最常用的。

PyInstaller本身并不是Python模块,所以安装时随便放在哪儿都行。
优点:
可将python文件转成可执行文件
跨平台
输出的可以是单一目录,也可以是一个单独的打好包的可执行文件。py2exe貌似输出目录。
智能支持python的第三方模块如PyQt,外部数据文件等
支持EGG格式文件
可执行文件可以用UPX压缩,二进制压缩方式
支持控制台和视窗两种方式。
可以选择exe文件的图标(Windowsonly)
支持COMserver(Windowsonly)
缺点:
import导入的问题
pyinstaller是很智能的,只要指定了入口py文件,那么它就会根据代码自动查找需要导入的包。但是隐式导入的话,平常运行是没有问题的,举例:
#test1.py
fromsqlalchemyimportcreate_engine
fromsqlalchemy.ormimportsessionmaker


DB_CONNECT_STRING='mysql+pymysql://root:123456@localhost/study'
engine=create_engine(DB_CONNECT_STRING,echo=False)
DB_Session=sessionmaker(bind=engine)
session=DB_Session()

print('thisismytest')

运行这个ORM库的初始化引擎,是没有问题的,在console得到结果:
thisismytest

那么我们开始打包,使用最简单的pyinstallertest1.py。打包完成后,在当前目录下有个dist文件夹,进入dist下的test1文件夹,然后打开cmd,运行这个exe,我们就会发现:

提示:nomodel
查看更多
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

Python打包exe文件方法汇总【4种】

文档大小:90KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用