Python進階-打包程式為exe
阿新 • • 發佈:2018-12-22
作業系統:win7 x64
執行環境:Python3.5
安裝PyInstaller
第一步:下載PyInstaller
https://github.com/pyinstaller/pyinstaller
第二步:下載原始碼安裝
在github中打包下載,解壓到電腦中,執行命令列進入此目錄。
//進入子目錄 bootloader cd bootloader //build the bootloader 執行 python ./waf configure build install //重新進入根目錄 cd .. //安裝pyinstaller python setup.py install
第三步:配置虛擬環境
在按快捷鍵win+r輸入cmd進入cmd(管理員)命令列
set Path=%Path%+剛才的解壓目錄; #例如set Path=%Path%+D:\pyinstaller;
第四步:在命令列輸入以下命令檢視安裝結果:
pyinstaller --version
打包程式
pyinstaller 路徑\main.py -F -w -i F:/圖片/1.ico -n nginx管理工具 -p D:\python\Python36\Lib\site-packages ''' 說明:紅色部分是自己要打包的主程式路徑; 紅色部分之後的可選引數: -F:打包為單檔案可執行程式,沒有此引數的話會有很多其他檔案跟可執行檔案在一起 -w:是否是視窗程式,不指定的話,程式執行的時候有個控制檯黑視窗 -i:可執行檔案的圖示 -n:可執行檔案的名稱 -p:打包時要包含的搜尋目錄,一般不用指定該項 其他引數可參照pyinstaller官方文件。'''
如果配置沒有問題,敲下回車鍵,等待一會兒即可編譯完成。在解壓目錄下會生成一個dist目錄,在該目錄裡即可檢視編譯生成的可執行程式。
一般情況下,這個可執行檔案就可以單獨運行了。不過我的程式稍微複雜些,我的程式是一個flask寫的web程式。直接執行的話一直報模板檔案找不到的錯誤,把模板檔案複製到同一目錄下也不起作用。百度沒有找到解決方法,最後Google出來瞭解決方案:在建立flask的app物件的時候加上這個判斷即可:
from flask import Flask import sys import os app = None if getattr(sys, 'frozen', False): template_folder = os.path.join(sys.executable, '..', 'templates') static_folder = os.path.join(sys.executable, '..', 'static') app = Flask(__name__, template_folder=template_folder, static_folder=static_folder) else: app = Flask(__name__)
接下來,再重新編譯一下,把模板檔案和可執行程式複製到同一目錄,成功執行。