1. 程式人生 > >python程式打包(py2exe, pyinstaller, cxfreeze)

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

最近寫了一個python的程式,需要打包然後在windows下執行,所以找了一些打包的相關教程,程式比較複雜,涉及PyQt和多執行緒等相關技術。開始的時候選擇的py2exe,但是說實話py2exe在面臨很複雜的時候確實不咋好用,需要的包太多了,每次打包都會有新的依賴包,可能是我水平不行吧,按照要求一直在安裝可能需要的環境,但是當我成功打包的時候,開啟程式卻無法執行,原因說的模模糊糊,竟然是ssl的一個錯誤,google+必應都沒結果,我也裝了所有可能ssl、http和request等相關的包,然而並沒有什麼卵用。之後查到有人和我遇到了同樣的問題,也是各種的包安裝不完,所以果斷放棄了py2exe。

py2exe

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

pip install py2exe
# 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需要去http://www.pyinstaller.org/下載相應的壓縮包,然後解壓,在解壓目錄下執行:

python setup.py install

然後在將自己的python程式放在安裝目錄下:

python pyinstaller -onefile -w you_python_file.py

就會在目錄下生成一個以你程式名命名的一個資料夾,執行檔案在其中的dist資料夾中。