Python進階-打包程序為exe


操作系統: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__)

參考鏈接

 接下來,再重新編譯一下,把模板文件和可執行程序復制到同一目錄,成功運行。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM