admin 管理员组

文章数量: 887016

python程序打包(py2exe, pyinstaller, cxfreeze)

最近写了一个python的程序,需要打包然后在windows下执行,所以找了一些打包的相关教程,程序比较复杂,涉及PyQt和多线程等相关技术。开始的时候选择的py2exe,但是说实话py2exe在面临很复杂的时候确实不咋好用,需要的包太多了,每次打包都会有新的依赖包,可能是我水平不行吧,按照要求一直在安装可能需要的环境,但是当我成功打包的时候,打开程序却无法执行,原因说的模模糊糊,竟然是ssl的一个错误,google+必应都没结果,我也装了所有可能ssl、http和request等相关的包,然而并没有什么卵用。之后查到有人和我遇到了同样的问题,也是各种的包安装不完,所以果断放弃了py2exe。

py2exe

在windows下安装py2exe,可以使用pip,

pip install py2exe

或者在.6.9/下载相应的安装包,点击安装即可。
然后在python的程序目录下新建如下文件:

# python file to exe in window
# py2exe.py
from distutils.core import setup
import py2exe
import sys
import pyqrcode
#this allows to run it with a simple double click.
sys.argv.append('py2exe')py2exe_options = {"includes": ["sip",'sqlite3','gzip','PyQt4.QtNetwork','encodings','encodings.*','ssl','requests','OpenSSL.SSL','urllib.*',],"dll_excludes": ["MSVCP90.dll",],"compressed": 1,"optimize": 2,"ascii": 0,"packages":['requests'],#"bundle_files": 1,}setup(name = 'PyQt Demo',version = '1.0',window = ['python_file_name.py',], zipfile = None,options = {'py2exe': py2exe_options} )

然后执行

python py2exe.py you_python_file.py

pyinstaller

随后找了另外一个python的打包方法pyinstaller,总算是成功了,但是打出来的包确实太大了,不过勉强交差吧。
安装pyinstaller需要去,然后解压,在解压目录下执行:

python setup.py install

然后在将自己的python程序放在安装目录下:

python pyinstaller -onefile -w you_python_file.py

就会在目录下生成一个以你程序名命名的一个文件夹,执行文件在其中的dist文件夹中。

python的打包还有一个工具是cxfreeze,他的官网是.html

本文标签: python程序打包(py2exe pyinstaller cxfreeze)