python程式打包(py2exe, pyinstaller, cxfreeze)
阿新 • • 發佈:2019-01-24
最近寫了一個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資料夾中。