http://blog.sina.com.cn/s/blog_a60b1c3c0102xqix.html
环境说明:python2.7.13 win10专业版64位
py2exe
1.安装
相对于pyinstaller来说,py2exe不需要依赖pywin32,可以直接使用。
先去官网下载对应版本的py2exe(https://sourceforge.net/projects/py2exe/files/) 或者下载百度云保存的(提取密码:h4s9),然后运行安装即可。
2.使用说明
1)先找到自己写好的Python文件路径
2)然后在该路径下添加一个设置脚本setup.py(名字随便取),示例如下(别忘了加上import py2exe):
from distutils.core import setup
import py2exe
setup(console=["qrtest.py"])
((高级部分,其实也不高级,高级选项说明:
看那个编译脚本中的这句:setup(console=["HelloPy2exe.py"]),setup还支持很多参数,windows(一个windows界面程序),data_filse(打包其他的文件)……以后再说说。
看一个例子先:
-
- from distutils.core import setup
- import py2exe
-
- includes = ["encodings", "encodings.*"]
-
- options = {"py2exe":
- {"compressed": 1,
- "optimize": 2,
- "ascii": 1,
- "includes":includes,
- "bundle_files": 1
- }}
- setup(
- options=options,
- zipfile=None,
- console=[{"script": "HelloPy2exe.py", "icon_resources": [(1, "pc.ico")]}],
- windows=[{"script": "HelloWin.py", "icon_resources": [(1, "pc.ico")]}],
- data_files=[("magic",["App_x86.exe",]),],
- version = "2010.11.01.01",
- description = "this is a py2exe test",
- name = "HelloGuys.",
- )
options可以用来指定一些编译的参数,譬如是否压缩,是否打包为一个文件,data_files是一个打包时的拷贝文件列表,格式如下:data_files=[("目的文件夹",["文件名",]), ("目的文件夹",["文件名",]), ("目的文件夹",["文件名",]),],至于version,description,name等等,你们懂的,icon_resources是指定一个ico图标作为程序的图标。从这里也可以看出windows,console等参数是可以指定一个list来设置参数的。可以去Python安装目录/Lib/site-packages/py2exe/samples下看一些例子,这玩意还可以打包服务程序,com服务器程序等等。))
3)设置好以后,就可以进行编译了,在当前目录下按住shift再点击右键,选择“在此处打开命令窗口”。输入:python setup.py py2exe
4)等待上面的代码执行过后,在当前目录下的dist文件夹里面就有了qrtest.exe的可执行文件。
4)至此,就已经完成了打包成exe的目的了。
ps:最后想说的话。对于pyinstaller和py2exe两种把Python文件打包成exe的可执行文件的方法,都有各自的优缺点。但是最终目的都是为了在没有Python环境下的普通 Windows系统的电脑中可直接运行,这点还是很不错的。我本人比较偏向于pyinstaller,它(-F指令下)生成的exe文件,集成了所需要的所有资源(所以exe文件 相对较大),可直接拷贝到其他电脑中使用。对于py2exe来说,限制就比较多了,它所需要用到的外部资源都在dist目录下,想要在其他电脑中使用就必须把整个dist文件夹都拷贝过去。而且经测试在64位机器生成的exe无法再32位机器上打开使用。
大家根据自己的需要,择优选择就行了。
========================================================
环境说明:Python2.7.13 win10专业版64位
pyinstaller
1.
使用前的准备
先下载好对应的pyinstaller的安装包
(官网:https://sourceforge.net/projects/pyinstaller/files/)
对pyinstaller的源码感兴趣的,这里也有:
pyinstaller的源码地址:https://github.com/pyinstaller/pyinstaller
然后在Windows下还需要pywin32的支持,大家先去下自己对应的版本
(官网:http://sourceforge.net/projects/pywin32/)
嫌麻烦的,我这里有两个安装包的
mirror(提取密码:y8fq)
2.安装
将下载好的pywin32-218.win-amd64-py2.7.exe双击安装,电脑会自动查找Python27的路径,我这里是64位的py2.7。
然后再将下载好的pyinstaller-2.0.zip解压到D盘(解压到其他地方也行)
3.转换
配置好环境后,我们就可以进行最激动人心的一步了!
1)将你写好的Python文件放到解压好的pyinstaller的目录下
2)然后按住shift键,再点右键,选择“在此处打开命令窗口”
3)输入:python pyinstaller.py -F test.py
注:-F表示生成单个可执行文件,test.py是你已经写好的Python文件
(参数说明:
-F 表示生成单个可执行文件
-w 表示去掉控制台窗口
-p 表示你自己自定义需要加载的类路径
-i 表示可执行文件的图标
-D, –onedir 创建一个目录,包含exe文件,但会依赖很多文件
-c, –console, –nowindowed 使用控制台,无界面)
添加icon图标
python pyinstaller.py -i 1.ico -F hello.py
后记:
1.程序设置自定义图标:python pyinstaller.py -F -i ico_path py_path
首先需要下载一张正常的ico,不能用直接修改后缀的。
下载图片: https://www.easyicon.net
图片改为ico: http://www.ico.la/
输入命令 python pyinstaller.py -F -i demo.ico main.py
2.报错提示:
python pyinstaller -F -i demo.ico main.py 命令格式一定是先图标路径,再程序路径。
路径最好为英文,没有中文字符;脚本名称里没有特殊字符如 .
使用utf8编码
图标文件必须是正常格式,不能直接更改后缀。
tuble index out of range ---》pyinstaller版本尚未支持python的版本
3.窗口程序
使用 pyinstaller -F -w -i ico_path py_path ,这样脚本不会弹出命令窗,前提是用了GUI库.
4.导入模块问题
pyinstaller -F -w -i --hidden-import queue ico_path py_path 加上选项
Keep going
4)然后等待它编译,编译完成后,在根目录下的test/dist里面就有已经打包好的exe文件,直接拷贝出来就可以使用了。
5)如果大家的程序打开闪一下就关闭了,就在你们写好的Python程序的最后加上一句raw_input(),就可以实现程序运行结束后窗口暂停,直到你输入回车键
6)就这样就可以将python文件打包成方便使用的exe文件了
ps:还有一种更简单的安装pyinstaller的方法:
直接在cmd命令窗口下输入:pip install pyinstaller 即可,
然后在转换成exe的时候,只需要在写好的python文件目录下输入:pyinstaller -F test.py 即可