python两种打包方式--py2exe和pyinstaller

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文件路径
python两种打包方式--py2exe和pyinstaller_第1张图片

2)然后在该路径下添加一个设置脚本setup.py(名字随便取),示例如下(别忘了加上import py2exe):

from distutils.core import setup 
import py2exe
setup(console=["qrtest.py"]) 

python两种打包方式--py2exe和pyinstaller_第2张图片

((高级部分,其实也不高级,高级选项说明:

      看那个编译脚本中的这句:setup(console=["HelloPy2exe.py"]),setup还支持很多参数,windows(一个windows界面程序),data_filse(打包其他的文件)……以后再说说。

      看一个例子先:

[python]  view plain  copy
  1. # -*- coding: cp936 -*-  
  2. from distutils.core import setup  
  3. import py2exe  
  4.   
  5. includes = ["encodings""encodings.*"]  
  6.   
  7. options = {"py2exe":    
  8.             {"compressed"1#压缩    
  9.              "optimize"2,    
  10.              "ascii"1,    
  11.              "includes":includes,    
  12.              "bundle_files"1 #所有文件打包成一个exe文件  
  13.             }}  
  14. setup(  
  15.     options=options,    
  16.     zipfile=None,  
  17.     console=[{"script""HelloPy2exe.py""icon_resources": [(1"pc.ico")]}],  
  18.     windows=[{"script""HelloWin.py""icon_resources": [(1"pc.ico")]}],  
  19.     data_files=[("magic",["App_x86.exe",]),],  
  20.     version = "2010.11.01.01",   
  21.     description = "this is a py2exe test",   
  22.     name = "HelloGuys.",   
  23. )  

      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
python两种打包方式--py2exe和pyinstaller_第3张图片

4)等待上面的代码执行过后,在当前目录下的dist文件夹里面就有了qrtest.exe的可执行文件。
python两种打包方式--py2exe和pyinstaller_第4张图片
python两种打包方式--py2exe和pyinstaller_第5张图片


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)
python两种打包方式--py2exe和pyinstaller_第6张图片

2.安装
将下载好的pywin32-218.win-amd64-py2.7.exe双击安装,电脑会自动查找Python27的路径,我这里是64位的py2.7。
然后再将下载好的pyinstaller-2.0.zip解压到D盘(解压到其他地方也行)

3.转换
配置好环境后,我们就可以进行最激动人心的一步了!
1)将你写好的Python文件放到解压好的pyinstaller的目录下
python两种打包方式--py2exe和pyinstaller_第7张图片

2)然后按住shift键,再点右键,选择“在此处打开命令窗口”
3)输入:python pyinstaller.py -F test.py
python两种打包方式--py2exe和pyinstaller_第8张图片

注:-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 加上选项

1
 
Keep going



4)然后等待它编译,编译完成后,在根目录下的test/dist里面就有已经打包好的exe文件,直接拷贝出来就可以使用了。
python两种打包方式--py2exe和pyinstaller_第9张图片

python两种打包方式--py2exe和pyinstaller_第10张图片

python两种打包方式--py2exe和pyinstaller_第11张图片

5)如果大家的程序打开闪一下就关闭了,就在你们写好的Python程序的最后加上一句raw_input(),就可以实现程序运行结束后窗口暂停,直到你输入回车键
6)就这样就可以将python文件打包成方便使用的exe文件了



ps:还有一种更简单的安装pyinstaller的方法:
直接在cmd命令窗口下输入:pip install pyinstaller 即可,
然后在转换成exe的时候,只需要在写好的python文件目录下输入:pyinstaller -F test.py 即可




你可能感兴趣的:(python两种打包方式--py2exe和pyinstaller)