1. 程式人生 > >python文件封裝成*.exe文件(單文件和多文件)

python文件封裝成*.exe文件(單文件和多文件)

-- 黑板 workday 程序包 代碼 拷貝 4.5 hole nic

環境:win10 64位 python3.7

單*.py文件打包
Python GUI:程序打包為exe

一、安裝Pyinstaller,命令pip install Pyinstaller,(大寫的P,敲黑板,要考)
二、打包exe步驟:

cmd進入py程序項目目錄,執行命令:pyinstaller -F -w --icon=xxx.ico main.py --noconsole。其中,-F表示生成單exe可執行文件,-w表示窗體程序,
--icon是設置exe的顯示圖標,‘main.py‘是程序的入口,--noconsole 表示不展示cmd窗口,反過來想看cmd窗口就改成--console。*.ico文件可以到網上ico矢量圖在線轉換工具處理
http://www.faviconico.org/

一陣刷屏之後,終於打出成功的提示:

程序目錄下多了幾個文件夾:一個spec文件,build文件夾,一個dist文件夾,其中的dist文件夾內就是我們生成的exe應用程序:


FATAL ERROR:
執行之,應該能看到程序界面,可是......彈出的卻是個錯誤框:Failed to execute script pyi_rth_qt5plugins

這個錯誤的原因在於pyinstaller找不到PyQt庫,通過網上封裝好的pyqt安裝程序包安裝的,則不會出現這個問題,而我們是通過pip安裝的,
沒有將pyqt的路徑加入環境變量。
解決辦法是在打包命令中加入paths參數:pyinstaller --paths C:Users......Python35-32/Lib/site-packages/PyQt5/Qt/bin -F -w --icon=roman.ico main.py 或者設置下環境變量。這時,再看下生成的exe,文件大小已經由8.5M增大到14.5M了,再次執行之,ok,看到了我們的界面,而且功能也是ok的,

多文件打包:

多文件打包參考:https://blog.csdn.net/CholenMine/article/details/80964272

命令格式如下,下命令為一條命令,為方便顯示做了分行處理:

pyinstaller [主文件] -p [其他文件1] -p [其他文件2]
--hidden-import [自建模塊1]
--hidden-import [自建模塊2]
# 以上為一整條命令
pyinstaller main.py -p mysql.py -p other.py --hidden-import mysql --hidden-import other

在目錄結構:“程序根目錄\dist\main\” 下可以找到生成的main.exe。將其他依賴文件拷貝進入“程序根目錄\dist\main\” 下,即可運行

技術分享圖片
項目XXX舉例,main和ico文件要放一起 -p 文件夾,因為項目下我創建了case、autodriver、data、page文件夾,文件夾裏面放的*.py文件通過--hiddent-import指向,代碼如下:
pyinstaller -F -i t.ico -w main.py -p case -p autodriver -p data -p page -p page --hidden-import workday.py --hidden-import auto_driver.py --hidden-import login.csv --hidden-import base_page.py --hiddent-import sub_page.py
註意:--hiddent-import是連在一起的,dist文件夾裏面要把需要的問卷copy進來,然後整個dist文件夾就可以任意移動到其他位置,到時候運行*.exe文件就可以執行程序了

python文件封裝成*.exe文件(單文件和多文件)