两种方式: 一 .py2exe (最好是在win7下面python2下去打包)
1.安装 【Python3】 直接pip install py2exe,如果报ssl错误就pip install openpyxl -i http://pypi.douban测试数据/simple/ --trusted-host pypi.douban测试数据 *据说python 3.3,和python3.4才支持py2exe,没验证过。
【Python2】: python 2 不能用pip 来安装,会报错,可以下载下来安装 https://sourceforge.net/projects/py2exe/files/py2exe/0.6.9/ 里面去下对应python 版本得py2exe
2.setup.py
需要自己手动写一个脚本如下,我的叫setup.py,和要打包的脚本放一起: #setup.py from distutils.core import setup import py2exe,sys
sys.argv.append(‘py2exe‘)
datafile = [(‘目的文件夹‘,‘文件名’),(‘目的文件夹‘,文件名)];例如[(‘images‘,‘images\*.jgp‘)] includes = []
options= {"py2exe": { "compressed":1, #压缩 "optimize":2, #优化,0表示不优化,1表示普通优化,2表示额外优化 "bundle_files":1, "includes": INCLUDES, #########bundle_files:####### 1:打包成一个exe 文件,包含python 解释器 2:打包成一个exe 文件,不包含python 解释器 3:默认,不打包 ########################### } } setup( options = options, zipfile = None, #不生成library.zip文件 datafiles=datafile , #包含得数据文件,会copy到dist里面去 windows=[ { ‘script‘:"wx_test.py" } ] ) #windows不包含cmd框,console 包含cmd框
3.Issues: *一般在win7上运行没问题,但是在win10上运行的时候会提示很多dll文件找不到,直接加在option里面,例如: options = { "py2exe": { "dll_excludes": [ "name1.dll", "name2".dll ] } } *bundle_file:1,只打包成一个exe文件,在amd64里是不支持的,只能在32位系统里打包,安装的时候也要安装32位的py2exe
二.pyinstaller
1.安装 pip install pywin32 -i http://pypi.douban测试数据/simple/ --trusted-host pypi.douban测试数据 pip install pyinstaller -i http://pypi.douban测试数据/simple/ --trusted-host pypi.douban测试数据
2.使用 pyinstaller -F wx_text.py -F:生成单个exe文件 -w 去掉控制台窗口 -p 自定义需要加载的类路径 -i 可执行文件的图标
3.issue1.Exception: Python.Runtime not found=>pip install pythonnet
查看更多关于py2exe 和pyinstaller打包的详细内容...