




如果您无法下载资料,请参考说明:
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

王子****青蛙
实名认证
内容提供者


最近下载