????????前文我們已經寫了一個基于python的tkinter庫和matplotlib庫的圖形可視化工具。
????????基于Python的tkinter庫的圖形可視化工具(15種圖形的完整代碼):基于Python的tkinter庫的圖形可視化工具(15種圖形的完整代碼)-CSDN博客
? ? ? ? 在前文基礎上,為了更好管理,以及便于生成exe,現將所有文件都存放桌面的GraphVisualizerApp文件夾中。
一、PyInstaller 打包 Python程序步驟
????????要將圖形可視化工具打包為 Windows 可安裝應用程序并添加桌面圖標,我們可以使用?PyInstaller?和?NSIS (Nullsoft Scriptable Install System)?來完成這個任務。以下是詳細步驟:
(一)使用 PyInstaller 打包 Python 腳本
首先需要安裝 PyInstaller 并生成單個可執行文件:
# 安裝 PyInstaller
pip install pyinstaller# 切換到腳本所在目錄
cd /path/to/your/script
# 如,我當前的腳本文件是放在桌面上,則:
cd Desktop/GraphVisualizerApp# 打包腳本 (替換為你的腳本名,當前腳本名是graphVisualizerApp)
pyinstaller --onefile --windowed --icon=app.ico GraphVisualizerApp.py
參數說明:
--onefile
:將所有依賴打包成單個可執行文件--windowed
:不顯示命令行窗口--icon=app.ico
:指定應用程序圖標(需準備一個?.ico
?格式圖標文件)
打包需要時間,直到出現以下結果,說明已經打包成功:
????????PyInstaller 默認將 exe 生成到?dist
?目錄,查看dist目錄下,是否已經存在了graphvisualizerapp.exe文件,有就說明成功了,沒有exe文件,可以重新打包試一下。
(二)準備應用程序圖標
1.準備一張高質量的 PNG 圖片(建議尺寸 256x256)
2.使用在線工具將 PNG 轉換為 ICO 格式,例如:
? ? ? ? 可以直接將轉換好的ico文件下載。
3.將生成的?app.ico
?文件放在腳本同一目錄下
同時,也看到前面打包成功后,文件夾中多出了多個文件。
(三)使用 NSIS 創建安裝程序
NSIS 是一個免費的工具,用于創建 Windows 安裝程序。按照以下步驟操作:
1.下載并安裝 NSIS:
- 從?NSIS 官網?下載并安裝
2.創建 NSIS 腳本:
- 在腳本目錄創建一個名為?
installer.nsi
?的文件,內容如下:
? ? ? ? 可以先創建一個txt文件,將代碼放進去之后,再改后綴名。
; 圖形可視化工具安裝程序
Name "圖形可視化工具"
OutFile "圖形可視化工具安裝程序.exe"
InstallDir "$PROGRAMFILES\圖形可視化工具"
RequestExecutionLevel admin; 安裝界面設置
!define MUI_ABORTWARNING
!include "MUI2.nsh"; 頁面定義
!define MUI_STARTMENU_APPSPATH "圖形可視化工具" ; 定義開始菜單路徑!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH; 語言設置
!insertmacro MUI_LANGUAGE "English" ; 確保語言文件存在; 安裝文件
Section "MainSection"SetOutPath $INSTDIRFile /r "dist\*"; 創建桌面圖標CreateShortCut "$DESKTOP\圖形可視化工具.lnk" "$INSTDIR\GraphVisualizerApp.exe"CreateShortCut "$SMPROGRAMS\圖形可視化工具\圖形可視化工具.lnk" "$INSTDIR\GraphVisualizerApp.exe"; 創建卸載快捷方式CreateShortCut "$SMPROGRAMS\圖形可視化工具\卸載.lnk" "$INSTDIR\uninstall.exe"; 關鍵步驟:生成卸載程序WriteUninstaller "$INSTDIR\uninstall.exe" ; 指定卸載程序路徑
SectionEnd; 卸載部分
Section "Uninstall"Delete "$DESKTOP\圖形可視化工具.lnk"Delete "$SMPROGRAMS\圖形可視化工具\卸載.lnk"Delete "$SMPROGRAMS\圖形可視化工具\圖形可視化工具.lnk"RMDir "$SMPROGRAMS\圖形可視化工具"Delete "$INSTDIR\GraphVisualizerApp.exe"RMDir /r "$INSTDIR"
SectionEnd
????????由于前面已經安裝了NSIS,所以改了后綴名之后,文件會被自動識別。
????????這里有個需要注意的地方,NSIS 默認使用?ANSI 編碼(Windows 系統的默認編碼),而txt包含中文注釋且使用了 UTF-8 編碼,之后會導致解析失敗。所以這時,需要右鍵install.nsi-->另存為-->修改編碼-->覆蓋保存。
?此時的文件目錄結構為:
GraphVisualizerApp/
├── GraphVisualizerApp.py # 主腳本
├── GraphVisualizerApp.spec
├── app.ico # 應用圖標
├── installer.nsi # NSIS 安裝腳本
├── dist/ # PyInstaller 生成的目錄
│ └── GraphVisualizerApp.exe # 打包后的可執行文件
└── build/ # PyInstaller 臨時文件
3.編譯 NSIS 腳本:
- 右鍵點擊?
installer.nsi
?文件,選擇 "Compile NSIS Script" - 編譯完成后,將生成?
圖形可視化工具安裝程序.exe
之后會打開NSIS軟件,顯示創建安裝程序過程。顯示如下的綠色背景,說明成功了。
此時,在GraphVisualizerApp文件夾下出現了“圖形可視化工具安裝程序.exe”
(四)測試安裝程序
- 運行生成的安裝程序
- 按照安裝向導完成安裝
- 驗證:
- 桌面是否出現應用程序圖標
- 開始菜單是否有應用程序入口
- 應用程序是否能正常啟動并生成圖形
以下是安裝步驟:
安裝成功后,桌面上會出現安裝圖標。
雙擊打開。
安裝目錄下,會有卸載程序。
卸載程序。
不過相應的安裝文件夾要自己刪除!
二、常見問題及解決方案
1.缺少依賴庫:
- 如果打包后程序運行報錯,可能是缺少某些依賴庫
- 可以嘗試使用?
--hidden-import
?參數指定缺失的模塊
2.圖標不顯示:
- 確保 ICO 文件格式正確且尺寸合適
- 可以嘗試使用不同的圖標生成工具
3.安裝程序體積過大:
- 可以考慮使用 UPX 壓縮可執行文件:
pyinstaller --onefile --windowed --icon=app.ico --upx-dir=path/to/upx GraphVisualizerApp.py
三、其他問題? ? ? ??
????????最開始的時候我是用中文的,但是最后發現不行,所以前文使用的語言是英語。以下僅供參考。具體問題以及解決辦法如下:
這個錯誤是由于 NSIS 找不到中文語言文件導致的。以下是詳細的解決方案:
(一)錯誤原因分析
-
缺少中文語言文件:
- NSIS 的 Modern UI 2 插件需要對應的語言文件(
.nlf
)才能顯示中文界面。 - 錯誤信息明確指出找不到?
ChineseSimplified.nlf
?文件,該文件通常位于?NSIS\Contrib\Language files
?目錄下。
- NSIS 的 Modern UI 2 插件需要對應的語言文件(
-
NSIS 安裝不完整:
- 在安裝 NSIS 時,
Contrib
?組件(包含語言文件和插件)可能未被勾選安裝。
- 在安裝 NSIS 時,
(二)解決方案
方法 1:手動下載并添加語言文件
-
下載中文語言文件:
- 從 NSIS 官方倉庫下載?
ChineseSimplified.nlf
?文件:- 下載地址:ChineseSimplified.nlf
- 或者從其他 NSIS 安裝機器的?
NSIS\Contrib\Language files
?目錄復制該文件。
- 從 NSIS 官方倉庫下載?
-
放置文件到正確路徑:
- 將下載的?
ChineseSimplified.nlf
?放到以下路徑:D:\Program Files (x86)\NSIS\Contrib\Language files\
- 如果沒有?
Language files
?目錄,請手動創建。
- 將下載的?
方法 2:重新安裝 NSIS 并勾選 Contrib 組件
-
卸載現有 NSIS:
- 通過 Windows 控制面板卸載 NSIS。
-
重新安裝 NSIS:
- 下載最新版 NSIS(建議 v3.09 或更高):NSIS 下載頁
- 安裝過程中,在?Custom Setup?步驟:
- 確保勾選?
Contrib
?組件(包含插件和語言文件)。 - 確認安裝路徑為?
D:\Program Files (x86)\NSIS
。
- 確保勾選?
通過這種方式,你可以創建一個專業的 Windows 安裝程序,包含桌面圖標和完整的卸載功能。