目錄
1. 背景
2. 生成.spec文件:
3. 編輯.spec文件:
4. 最后生成單個可執(zhí)行文件.exe:
?5 補充:
1. 背景
????????最近在項目中想做一個用于燒錄MCU的上位機給工廠用。于是在某工程模板上簡單開發(fā)了一個基于python 和pyQt5的上位機軟件。項目包含多個.py文件,多個.dll文件,一個.ui文件,一個.ico文件。開發(fā)完成后,想要打包成一個單獨的可執(zhí)行文件(.exe)并使用項目中的.ico文件作為程序的圖標,這樣美觀,且便于文件的分享,免除安裝和依賴環(huán)境的麻煩。
這里提供一個在線生成.ico文件的網(wǎng)站:
.ico文件在線生成https://www.moqu8.com/mqweb/imgtoico/index.php
2. 生成.spec文件:
? ? ? ? 當前有以下一個項目,如圖:
????????項目中包含多個文件。其中的.py文件,兩個.dll文件,一個.ico文件是我們執(zhí)行時所需要的所有文件。
我們通過vscode 打開該項目文件夾,首先通過以下命令安裝pyinstaller:
pip install pyinstaller
然后在terminal中輸入以下命令,生成一個用于生成可執(zhí)行文件的.spec文件(該方法適用于多文件的打包):
pyinstaller -F main.py
-F: 生成一個可執(zhí)行文件。
main.py :項目的主界面。
此時可以看到,我們生成了一個名為 main.spec的文件。
3. 編輯.spec文件:
? ? ? ? 我們打開.spec文件,進行如下編輯:
? ? ? ? ?3.1 在1位置,將所有需要打包的.py文件,以 'xxx.py' 的格式,添加到包含了 'main.py'的方括號中。
? ? ? ? 3.2 將項目根目錄的絕對路徑,以 '' 包含后,添加到pathex中,注意要用 '\\'.
? ? ? ? 3.3 將所有除了.py以外,需要用到各種格式的其他文件,比如 .dll, .ico . jpg等,以2元元組的格式,添加到datas中。元組格式為:('文件相對路徑', '文件的父級相對路徑')。文件的相對路徑可通過以下方式快速獲?。?/p>
?????????因為該項目中所有文件均在同一目錄下,因此其父級相對路徑變?yōu)?'.\\'。注意,這里也需要用 '\\'。
? ? ? ? 3.4 修改name為你需要的命名。
? ? ? ? 3.5 console有兩種情況: True: 運行程序時打開命令窗口;False:不打開命令窗口。
? ? ? ? 3.6 默認生成的.spec中可能不帶icon,如果需要更改新程序圖標的話,需要加上這行。因為當前圖標和main.py在同一目錄下,所以可直接用其相對路徑。
4. 最后生成單個可執(zhí)行文件.exe:
? ? ? ? 在terminal中輸入以下命令:
pyinstaller main.spec
? ? ? ? 基于我們剛編輯過的.spec文件,我們最終在項目的根目錄下生成兩個文件夾: dist; build。我們需要的.exe文件就在dist文件夾下。
????????圖中可以看到,可執(zhí)行文件的圖標也變?yōu)榱薴actory.ico。并且最后只生成了一個可執(zhí)行文件。
運行一下:
?5 補充:
其實在最開始生成.spec文件時,可用下面的命令:
pyinstaller -F -w -i factory.ico main.py
下面是pyinstaller 的參數(shù)信息:文章來源:http://www.zghlxwxcb.cn/news/detail-561191.html
-h | 該模塊的help信息 |
---|---|
-F | 生成一個可執(zhí)行文件 |
-D | 生成一個目錄(包含多個文件)作為可執(zhí)行文件 |
-w | 運行exe時,不顯示命令行窗口(僅對Windows有效) |
-i | 該參數(shù)后跟可執(zhí)行文件的icon圖標路徑 |
–distpath | 該參數(shù)后跟可執(zhí)行文件的路徑 |
-n | 該參數(shù)后跟可執(zhí)行文件的新名字 |
?文章來源地址http://www.zghlxwxcb.cn/news/detail-561191.html
到了這里,關于python 打包項目(包含.ui文件,.dll文件)為exe可執(zhí)行文件的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!