Python使用VSCode+Anaconda+DeepSeek開發(fā)軟件并打包為exe
本文面向Python新手,全程實操無冗余理論,基于VSCode+Anaconda Prompt環(huán)境,完成從DeepSeek輔助生成Python代碼、調(diào)試運行,到最終打包為可雙擊運行的exe文件的全流程,同時補充Anaconda Prompt與Command Prompt的核心區(qū)別,解決新手打包常見報錯,建議收藏跟著步驟一步步操作。
一、工具確認與安裝(基礎(chǔ)前提,必做)
本次實操需用到4個核心工具/環(huán)境:VSCode(代碼編輯與調(diào)試)、Anaconda(環(huán)境管理與打包)、Python(核心運行環(huán)境,Anaconda自帶)、DeepSeek(代碼生成,網(wǎng)頁版/客戶端均可),以下是詳細安裝與確認步驟,全程默認Windows系統(tǒng)。
1.1 VSCode安裝與配置
1.下載地址:VSCode官方下載,選擇Windows版本,默認安裝即可(建議勾選“添加到PATH”,方便后續(xù)調(diào)用)。
2.打開VS Code → 左側(cè)【擴展】欄(快捷鍵:Ctrl+Shift+X)→ 搜索→ 選擇微軟官方插件→ 點擊【安裝】。
安裝Python插件:打開VSCode,左側(cè)導(dǎo)航欄點擊“擴展”(Ctrl+Shift+X),搜索“Python”,安裝微軟官方發(fā)布的“Python”插件(作者:Microsoft),安裝完成后重啟VSCode生效。
1.2 Anaconda安裝與環(huán)境配置
下載地址:Anaconda官方下載,選擇Windows版本(建議下載Python 3.8+版本,兼容性更好,避免過高版本導(dǎo)致打包報錯)。
安裝步驟:
雙擊安裝包,默認下一步,重點勾選“Add Anaconda3 to my PATH environment variable”(添加環(huán)境變量,新手必勾,避免后續(xù)無法調(diào)用conda命令)。
安裝路徑建議默認,或自定義路徑(路徑中不可有中文、空格,否則后續(xù)打包會報錯)。
安裝完成后,關(guān)閉所有窗口,打開“Anaconda Prompt”(開始菜單搜索即可),輸入命令
conda --version,若顯示conda版本號(如conda 23.10.0),則安裝成功。創(chuàng)建并激活虛擬環(huán)境(關(guān)鍵,避免依賴沖突):
打開Anaconda Prompt,輸入命令創(chuàng)建環(huán)境(環(huán)境名自定義,這里用deepseek_exe):
conda create -n deepseek_exe python=3.9,輸入y確認安裝依賴。激活環(huán)境:輸入
conda activate deepseek_exe,命令行左側(cè)出現(xiàn)“(deepseek_exe)”,則環(huán)境激活成功(后續(xù)所有操作均需在該環(huán)境下進行)。
1.3 DeepSeek準備
DeepSeek使用:無需安裝,直接打開網(wǎng)頁版DeepSeek官網(wǎng)
二、圖片選擇與DeepSeek代碼生成與調(diào)試(核心開發(fā)環(huán)節(jié))
本環(huán)節(jié)將完成:選擇合適的圖片素材 → 用DeepSeek生成Python圖片處理代碼 → 在VSCode中調(diào)試代碼,確保代碼可正常運行(以“圖片讀取、尺寸調(diào)整、顯示”為例,新手可直接復(fù)用,也可根據(jù)需求修改)。
2.1 圖片選擇與準備
圖片要求:選擇JPG/PNG格式的圖片(避免使用GIF動圖,后續(xù)調(diào)試易報錯),圖片路徑建議放在VSCode工作目錄下(如:新建文件夾“DeepSeek_Exe_Demo”,將圖片命名為“test.jpg”,放入該文件夾)。
路徑注意:圖片路徑、工作目錄路徑,不可有中文、空格、特殊字符(如“測試圖片.jpg”“DeepSeek Demo”均不可,建議改為“test.jpg”“DeepSeek_Exe_Demo”),否則會出現(xiàn)“路徑找不到”的報錯。
2.2 DeepSeek代碼生成(精準提示詞是關(guān)鍵)
1.打開DeepSeek-Coder模型,輸入以下提示詞(可直接復(fù)制,修改圖片路徑即可),生成Python代碼:
提示詞:根據(jù)上述圖片使用python語言寫一個頂置在電腦最高圖層的軟件。
DeepSeek生成的代碼示例(可直接復(fù)用,需確認圖片路徑正確):
import tkinter as tk from datetime import datetime # ------------------ 配置參數(shù) ------------------ TARGET_DATE = datetime(2026, 12, 24, 0, 0, 0) # 考研日期(當天0點) TITLE_TEXT = "27考研倒計時" DATE_TEXT = "考試日期:2026年12月24日" MOTTO_TEXT = "克服困難,勇敢者自有千方百計,怯懦者只感到萬般無奈。" # 顏色與字體 BG_COLOR = "#0a0f0f" # 深色背景 FG_TITLE = "#ffffff" FG_COUNTDOWN = "#a3ff73" # 亮綠色 FG_DATE = "#cccccc" FG_MOTTO = "#ffd966" # 柔和黃色 FONT_TITLE = ("微軟雅黑", 20, "bold") FONT_COUNTDOWN = ("Consolas", 18, "bold") # 等寬字體,保持寬度穩(wěn)定 FONT_DATE = ("微軟雅黑", 12) FONT_MOTTO = ("楷體", 13, "italic") # 窗口透明度 (0~1) WINDOW_ALPHA = 0.92 # 右下角邊距 MARGIN_RIGHT = 30 MARGIN_BOTTOM = 50 # ------------------ 功能函數(shù) ------------------ def update_countdown(): """更新時間顯示""" now = datetime.now() delta = TARGET_DATE - now if delta.total_seconds() < 0: # 考試已過或已開始 countdown_label.config(text="?? 考研已開始,加油! ??") return # 停止刷新 else: days = delta.days seconds = delta.seconds hours = seconds // 3600 minutes = (seconds % 3600) // 60 secs = seconds % 60 # 格式:還剩 XXX天 HH:MM:SS time_str = f"還剩 {days} 天 {hours:02d}:{minutes:02d}:{secs:02d}" countdown_label.config(text=time_str) # 每秒調(diào)用自己 root.after(1000, update_countdown) def start_move(event): """記錄拖動起點""" root.drag_start_x = event.x root.drag_start_y = event.y def do_move(event): """窗口拖動""" deltax = event.x - root.drag_start_x deltay = event.y - root.drag_start_y x = root.winfo_x() + deltax y = root.winfo_y() + deltay root.geometry(f"+{x}+{y}") def quit_app(event): """右鍵退出程序""" root.destroy() # ------------------ 創(chuàng)建窗口 ------------------ root = tk.Tk() root.title("考研倒計時") # 任務(wù)欄顯示,但會被覆蓋 root.overrideredirect(True) # 去掉窗口邊框 root.attributes('-topmost', True) # 始終置頂 root.attributes('-alpha', WINDOW_ALPHA) # 透明度 root.configure(bg=BG_COLOR) # ------------------ 放置控件 ------------------ # 使用Frame作為容器,方便統(tǒng)一背景和內(nèi)邊距 main_frame = tk.Frame(root, bg=BG_COLOR) main_frame.pack(padx=15, pady=12) # 標題 title_label = tk.Label(main_frame, text=TITLE_TEXT, font=FONT_TITLE, fg=FG_TITLE, bg=BG_COLOR) title_label.pack(pady=(0, 8)) # 倒計時(核心,會動態(tài)更新) countdown_label = tk.Label(main_frame, text="正在計算...", font=FONT_COUNTDOWN, fg=FG_COUNTDOWN, bg=BG_COLOR) countdown_label.pack(pady=5) # 考試日期 date_label = tk.Label(main_frame, text=DATE_TEXT, font=FONT_DATE, fg=FG_DATE, bg=BG_COLOR) date_label.pack(pady=5) # 勵志名言(自動換行,寬度約400像素) motto_label = tk.Label(main_frame, text=MOTTO_TEXT, font=FONT_MOTTO, fg=FG_MOTTO, bg=BG_COLOR, wraplength=400, justify="center") motto_label.pack(pady=8) # ------------------ 綁定事件 ------------------ root.bind('<Button-1>', start_move) # 左鍵按下記錄位置 root.bind('<B1-Motion>', do_move) # 左鍵移動拖動窗口 root.bind('<Button-3>', quit_app) # 右鍵退出程序 # 為了讓所有區(qū)域都能拖動和退出,給所有子控件也綁定相同事件(可選) for widget in (title_label, countdown_label, date_label, motto_label): widget.bind('<Button-1>', start_move) widget.bind('<B1-Motion>', do_move) widget.bind('<Button-3>', quit_app) # ------------------ 窗口初始位置(右下角) ------------------ root.update_idletasks() # 更新控件布局,獲取真實寬高 win_width = root.winfo_width() win_height = root.winfo_height() screen_width = root.winfo_screenwidth() screen_height = root.winfo_screenheight() x = screen_width - win_width - MARGIN_RIGHT y = screen_height - win_height - MARGIN_BOTTOM root.geometry(f'+{x}+{y}') # ------------------ 啟動倒計時刷新 ------------------ update_countdown() # ------------------ 進入消息循環(huán) ------------------ root.mainloop()
2.3 VSCode代碼調(diào)試(必做,避免打包后無法運行)
運行代碼調(diào)試:
點擊代碼右上角的“運行”按鈕(或按F5),選擇“Python文件”運行方式。
正常情況:會彈出調(diào)整后的圖片窗口,關(guān)閉圖片窗口后,VSCode終端會輸出“圖片處理完成!”,無報錯則調(diào)試成功。
常見報錯及解決:
報錯“FileNotFoundError: [Errno 2] No such file or directory: './test.jpg'”:檢查圖片路徑、圖片命名是否正確,確保圖片在工作目錄下。
報錯“ModuleNotFoundError: No module named 'PIL'”:說明虛擬環(huán)境未關(guān)聯(lián)成功,重新關(guān)聯(lián)deepseek_exe環(huán)境,或在終端輸入“pip install pillow”重新安裝依賴。
注意:調(diào)試環(huán)節(jié)必須確保代碼可正常運行,無任何報錯,否則后續(xù)打包的exe文件也會無法運行。
三、使用Anaconda打包(核心打包環(huán)節(jié),VSCode+Anaconda Prompt結(jié)合)
本環(huán)節(jié)將使用Anaconda Prompt(必須在之前創(chuàng)建的deepseek_exe環(huán)境中),結(jié)合pyinstaller工具,將調(diào)試成功的Python代碼打包為exe文件,全程實操,步驟清晰,避開新手常見坑。
3.1 打包前準備(關(guān)鍵,避免打包失?。?/h3>
確認環(huán)境:打開Anaconda Prompt,下載插件Pyinstaller
install Pyinstaller
切換工作目錄:輸入命令cd 你的VSCode工作目錄路徑(如:我的工作目錄是“D:\DeepSeek_Exe_Demo”,則輸入cd D:\DeepSeek_Exe_Demo),切換到Python文件所在的目錄。
cd D:\DeepSeek_Exe_Demo
確認環(huán)境:打開Anaconda Prompt,下載插件Pyinstaller
install Pyinstaller
切換工作目錄:輸入命令
cd 你的VSCode工作目錄路徑(如:我的工作目錄是“D:\DeepSeek_Exe_Demo”,則輸入cd D:\DeepSeek_Exe_Demo),切換到Python文件所在的目錄。cd D:\DeepSeek_Exe_Demo
3.2 執(zhí)行打包命令(核心步驟)
在Anaconda Prompt中,輸入以下打包命令(根據(jù)需求選擇,新手優(yōu)先選擇命令1,簡單無冗余):
命令1(推薦,單文件+隱藏控制臺):
pyinstaller -F -w image_tool.py
參數(shù)說明:-F(打包為單個exe文件,方便傳輸和使用)、-w(隱藏運行時的控制臺窗口,適合GUI程序,本次圖片顯示程序推薦使用)。
命令2(帶圖標,個性化):
pyinstaller -F -w -i icon.ico image_tool.py
參數(shù)說明:-i icon.ico(給exe文件添加圖標,icon.ico需放在當前工作目錄下,可網(wǎng)上下載.ico格式圖標,命名為icon.ico)。
輸入命令后,按回車鍵,開始打包,打包過程中會顯示“Building EXE from EXE-00.toc completed successfully.”,則打包成功(打包時間根據(jù)代碼復(fù)雜度、依賴多少而定,一般1-5分鐘)。
3.3 找到exe文件并驗證
查找exe文件:打包成功后,工作目錄下會生成“dist”文件夾,打開該文件夾,即可找到“image_tool.exe”文件(單文件打包,僅這一個exe,可單獨復(fù)制使用)。
驗證exe文件:
雙擊“image_tool.exe”,若正常彈出圖片窗口,關(guān)閉窗口后無報錯,說明打包成功,exe文件可正常使用。
將exe文件復(fù)制到其他文件夾(如桌面),雙擊仍可正常運行,說明打包無路徑依賴問題。
3.4 打包常見報錯及解決方法(新手必看)
報錯“pyinstaller : 無法將“pyinstaller”識別為 cmdlet、函數(shù)、腳本文件或可運行程序的名稱”:說明pyinstaller未安裝成功,在deepseek_exe環(huán)境中重新輸入
pip install pyinstaller安裝。打包成功,但雙擊exe無反應(yīng)/報錯“找不到圖片”:檢查圖片路徑是否為相對路徑(如./test.jpg),絕對路徑(如D:\DeepSeek_Exe_Demo\test.jpg)會導(dǎo)致exe脫離原文件夾后無法找到圖片;解決方法:將圖片與exe文件放在同一文件夾,或修改代碼為相對路徑。
exe運行報錯“Failed to execute script image_tool”:代碼調(diào)試不徹底,存在隱藏報錯,回到VSCode重新運行代碼,確保無任何報錯后,再重新打包。
四、拓展:Anaconda Prompt和Command Prompt是什么以及區(qū)別
很多新手會混淆Anaconda Prompt和Windows自帶的Command Prompt(CMD),尤其是本次實操為什么不用CMD打包,下面用通俗的語言解釋兩者的定義及核心區(qū)別,結(jié)合本次實操場景理解更易。
4.1 兩者定義(通俗版)
Command Prompt(CMD,命令提示符):Windows系統(tǒng)自帶的命令行工具,是系統(tǒng)級的命令行,可執(zhí)行Windows系統(tǒng)命令(如cd、dir、ipconfig),也可執(zhí)行Python命令,但不具備虛擬環(huán)境管理功能。
Anaconda Prompt:Anaconda安裝后自帶的命令行工具,基于CMD開發(fā),本質(zhì)是“CMD+Anaconda環(huán)境管理功能”,可執(zhí)行CMD的所有命令,同時能直接調(diào)用conda命令,管理虛擬環(huán)境、安裝依賴等。
4.2 核心區(qū)別(結(jié)合本次實操,重點)
對比維度 | Command Prompt(CMD) | Anaconda Prompt |
|---|---|---|
環(huán)境管理 | 無虛擬環(huán)境管理功能,只能使用系統(tǒng)默認的Python環(huán)境,若系統(tǒng)中安裝多個Python版本,易出現(xiàn)依賴沖突。 | 支持conda虛擬環(huán)境(如本次的deepseek_exe環(huán)境),可隔離不同項目的依賴,避免沖突,適合多項目開發(fā)。 |
依賴調(diào)用 | 需手動配置環(huán)境變量,才能調(diào)用pip、Python等命令,若環(huán)境變量配置錯誤,無法執(zhí)行相關(guān)命令。 | 自動關(guān)聯(lián)Anaconda環(huán)境,無需手動配置環(huán)境變量,激活虛擬環(huán)境后,可直接調(diào)用pip、conda、Python等命令。 |
本次實操適用性 | 不適用:無法激活deepseek_exe虛擬環(huán)境,打包時會因依賴缺失(如pillow、pyinstaller僅安裝在虛擬環(huán)境中)導(dǎo)致打包失敗。 | 適用:可激活虛擬環(huán)境,調(diào)用虛擬環(huán)境中的依賴,確保打包時能正常加載所有模塊,避免報錯。 |
使用場景 | 適合執(zhí)行簡單的Windows系統(tǒng)命令,或單個Python環(huán)境的簡單操作。 | 適合Python多項目開發(fā)、依賴管理、打包等場景,是數(shù)據(jù)科學(xué)、Python開發(fā)的常用工具。 |
4.3 補充說明
本次實操必須使用Anaconda Prompt,核心原因是:我們的依賴(pillow、pyinstaller)都安裝在deepseek_exe虛擬環(huán)境中,CMD無法識別該虛擬環(huán)境,打包時會找不到相關(guān)依賴,導(dǎo)致打包失敗;而Anaconda Prompt可直接激活虛擬環(huán)境,確保所有依賴都能被正常調(diào)用。
五、總結(jié)與注意事項(必看,避坑關(guān)鍵)
全程核心:虛擬環(huán)境是關(guān)鍵,所有工具安裝、代碼調(diào)試、打包,都需在虛擬環(huán)境中進行,避免依賴沖突。
路徑禁忌:所有文件(Python文件、圖片、工作目錄)的路徑、命名,不可有中文、空格、特殊字符,否則會導(dǎo)致調(diào)試或打包報錯。
調(diào)試優(yōu)先:代碼必須在VSCode中調(diào)試通過,無任何報錯后,再進行打包,否則exe文件會無法運行。
exe使用:打包后的exe文件,若代碼中使用了本地圖片,需將圖片與exe文件放在同一文件夾,否則會找不到圖片。
拓展延伸:本文以圖片處理為例,若需開發(fā)其他功能(如數(shù)據(jù)處理、GUI界面),可通過DeepSeek生成對應(yīng)代碼,調(diào)試通過后,按相同步驟打包即可。
到此這篇關(guān)于Python使用VSCode+Anaconda+DeepSeek開發(fā)軟件并打包為exe的文章就介紹到這了,更多相關(guān)Python使用VSCode+Anaconda打包exe內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于Python編寫一個git自動上傳的腳本(打包成exe)
這篇文章主要為大家詳細介紹了如何基于Python編寫一個git自動上傳的腳本并打包成exe,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-12-12
python opencv檢測直線 cv2.HoughLinesP的實現(xiàn)
cv2.HoughLines()函數(shù)是在二值圖像中查找直線,本文結(jié)合示例詳細的介紹了cv2.HoughLinesP的用法,感興趣的可以了解一下2021-06-06
Python selenium鍵盤鼠標事件實現(xiàn)過程詳解
這篇文章主要介紹了Python selenium鍵盤鼠標事件實現(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-07-07
python將txt等文件中的數(shù)據(jù)讀為numpy數(shù)組的方法
今天小編就為大家分享一篇python將txt等文件中的數(shù)據(jù)讀為numpy數(shù)組的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12










