目录
[1.1 VSCode安装与配置](#1.1 VSCode安装与配置)
[1.2 Anaconda安装与环境配置](#1.2 Anaconda安装与环境配置)
[1.3 DeepSeek准备](#1.3 DeepSeek准备)
二、图片选择与DeepSeek代码生成与调试(核心开发环节)
[2.1 图片选择与准备](#2.1 图片选择与准备)
[2.2 DeepSeek代码生成(精准提示词是关键)](#2.2 DeepSeek代码生成(精准提示词是关键))
[2.3 VSCode代码调试(必做,避免打包后无法运行)](#2.3 VSCode代码调试(必做,避免打包后无法运行))
[三、使用Anaconda打包(核心打包环节,VSCode+Anaconda Prompt结合)](#三、使用Anaconda打包(核心打包环节,VSCode+Anaconda Prompt结合))
[3.1 打包前准备(关键,避免打包失败)](#3.1 打包前准备(关键,避免打包失败))
[3.2 执行打包命令(核心步骤)](#3.2 执行打包命令(核心步骤))
[3.3 找到exe文件并验证](#3.3 找到exe文件并验证)
[3.4 打包常见报错及解决方法(新手必看)](#3.4 打包常见报错及解决方法(新手必看))
[四、拓展:Anaconda Prompt和Command Prompt是什么以及区别](#四、拓展:Anaconda Prompt和Command Prompt是什么以及区别)
[4.1 两者定义(通俗版)](#4.1 两者定义(通俗版))
[4.2 核心区别(结合本次实操,重点)](#4.2 核心区别(结合本次实操,重点))
[4.3 补充说明](#4.3 补充说明)
前言:本文面向Python新手,全程实操无冗余理论,基于VSCode+Anaconda Prompt环境,完成从DeepSeek辅助生成Python代码、调试运行,到最终打包为可双击运行的exe文件的全流程,同时补充Anaconda Prompt与Command Prompt的核心区别,解决新手打包常见报错,建议收藏跟着步骤一步步操作。
一、工具确认与安装(基础前提,必做)
本次实操需用到4个核心工具/环境:VSCode(代码编辑与调试)、Anaconda(环境管理与打包)、Python(核心运行环境,Anaconda自带)、DeepSeek(代码生成,网页版/客户端均可),以下是详细安装与确认步骤,全程默认Windows系统。
1.1 VSCode安装与配置
1.下载地址:VSCode官方下载,选择Windows版本,默认安装即可(建议勾选"添加到PATH",方便后续调用)。
2.打开VS Code → 左侧【扩展】栏(快捷键:Ctrl+Shift+X)→ 搜索→ 选择微软官方插件→ 点击【安装】。
安装Python插件:打开VSCode,左侧导航栏点击"扩展"(Ctrl+Shift+X),搜索"Python",安装微软官方发布的"Python"插件(作者:Microsoft),安装完成后重启VSCode生效。
1.2 Anaconda安装与环境配置
下载地址:Anaconda官方下载,选择Windows版本(建议下载Python 3.8+版本,兼容性更好,避免过高版本导致打包报错)。
安装步骤:
双击安装包,默认下一步,重点勾选"Add Anaconda3 to my PATH environment variable"(添加环境变量,新手必勾,避免后续无法调用conda命令)。
安装路径建议默认,或自定义路径(路径中不可有中文、空格,否则后续打包会报错)。
安装完成后,关闭所有窗口,打开"Anaconda Prompt"(开始菜单搜索即可),输入命令
conda --version,若显示conda版本号(如conda 23.10.0),则安装成功。创建并激活虚拟环境(关键,避免依赖冲突):
打开Anaconda Prompt,输入命令创建环境(环境名自定义,这里用deepseek_exe):
conda create -n deepseek_exe python=3.9,输入y确认安装依赖。激活环境:输入
conda activate deepseek_exe,命令行左侧出现"(deepseek_exe)",则环境激活成功(后续所有操作均需在该环境下进行)。
1.3 DeepSeek准备
DeepSeek使用:无需安装,直接打开网页版DeepSeek官网
二、图片选择与DeepSeek代码生成与调试(核心开发环节)
本环节将完成:选择合适的图片素材 → 用DeepSeek生成Python图片处理代码 → 在VSCode中调试代码,确保代码可正常运行(以"图片读取、尺寸调整、显示"为例,新手可直接复用,也可根据需求修改)。
2.1 图片选择与准备
图片要求:选择JPG/PNG格式的图片(避免使用GIF动图,后续调试易报错),图片路径建议放在VSCode工作目录下(如:新建文件夹"DeepSeek_Exe_Demo",将图片命名为"test.jpg",放入该文件夹)。
路径注意:图片路径、工作目录路径,不可有中文、空格、特殊字符(如"测试图片.jpg""DeepSeek Demo"均不可,建议改为"test.jpg""DeepSeek_Exe_Demo"),否则会出现"路径找不到"的报错。
2.2 DeepSeek代码生成(精准提示词是关键)
1.打开DeepSeek-Coder模型,输入以下提示词(可直接复制,修改图片路径即可),生成Python代码:
提示词:根据上述图片使用python语言写一个顶置在电脑最高图层的软件。
DeepSeek生成的代码示例(可直接复用,需确认图片路径正确):
pythonimport tkinter as tk from datetime import datetime # ------------------ 配置参数 ------------------ 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") # 等宽字体,保持宽度稳定 FONT_DATE = ("微软雅黑", 12) FONT_MOTTO = ("楷体", 13, "italic") # 窗口透明度 (0~1) WINDOW_ALPHA = 0.92 # 右下角边距 MARGIN_RIGHT = 30 MARGIN_BOTTOM = 50 # ------------------ 功能函数 ------------------ 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) # 每秒调用自己 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() # ------------------ 创建窗口 ------------------ root = tk.Tk() root.title("考研倒计时") # 任务栏显示,但会被覆盖 root.overrideredirect(True) # 去掉窗口边框 root.attributes('-topmost', True) # 始终置顶 root.attributes('-alpha', WINDOW_ALPHA) # 透明度 root.configure(bg=BG_COLOR) # ------------------ 放置控件 ------------------ # 使用Frame作为容器,方便统一背景和内边距 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)) # 倒计时(核心,会动态更新) 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) # 右键退出程序 # 为了让所有区域都能拖动和退出,给所有子控件也绑定相同事件(可选) 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() # ------------------ 进入消息循环 ------------------ root.mainloop()
2.3 VSCode代码调试(必做,避免打包后无法运行)
运行代码调试:
点击代码右上角的"运行"按钮(或按F5),选择"Python文件"运行方式。
正常情况:会弹出调整后的图片窗口,关闭图片窗口后,VSCode终端会输出"图片处理完成!",无报错则调试成功。
常见报错及解决:
报错"FileNotFoundError: [Errno 2] No such file or directory: './test.jpg'":检查图片路径、图片命名是否正确,确保图片在工作目录下。
报错"ModuleNotFoundError: No module named 'PIL'":说明虚拟环境未关联成功,重新关联deepseek_exe环境,或在终端输入"pip install pillow"重新安装依赖。
注意:调试环节必须确保代码可正常运行,无任何报错,否则后续打包的exe文件也会无法运行。
三、使用Anaconda打包(核心打包环节,VSCode+Anaconda Prompt结合)
本环节将使用Anaconda Prompt(必须在之前创建的deepseek_exe环境中),结合pyinstaller工具,将调试成功的Python代码打包为exe文件,全程实操,步骤清晰,避开新手常见坑。
3.1 打包前准备(关键,避免打包失败)
确认环境:打开Anaconda Prompt,下载插件Pyinstaller
bashinstall Pyinstaller切换工作目录:输入命令
cd 你的VSCode工作目录路径(如:我的工作目录是"D:\DeepSeek_Exe_Demo",则输入cd D:\DeepSeek_Exe_Demo),切换到Python文件所在的目录。
bashcd D:\DeepSeek_Exe_Demo
3.2 执行打包命令(核心步骤)
在Anaconda Prompt中,输入以下打包命令(根据需求选择,新手优先选择命令1,简单无冗余):
命令1(推荐,单文件+隐藏控制台):
bashpyinstaller -F -w image_tool.py
- 参数说明:-F(打包为单个exe文件,方便传输和使用)、-w(隐藏运行时的控制台窗口,适合GUI程序,本次图片显示程序推荐使用)。
命令2(带图标,个性化):
bashpyinstaller -F -w -i icon.ico image_tool.py
- 参数说明:-i icon.ico(给exe文件添加图标,icon.ico需放在当前工作目录下,可网上下载.ico格式图标,命名为icon.ico)。
输入命令后,按回车键,开始打包,打包过程中会显示"Building EXE from EXE-00.toc completed successfully.",则打包成功(打包时间根据代码复杂度、依赖多少而定,一般1-5分钟)。
3.3 找到exe文件并验证
查找exe文件:打包成功后,工作目录下会生成"dist"文件夹,打开该文件夹,即可找到"image_tool.exe"文件(单文件打包,仅这一个exe,可单独复制使用)。
验证exe文件:
双击"image_tool.exe",若正常弹出图片窗口,关闭窗口后无报错,说明打包成功,exe文件可正常使用。
将exe文件复制到其他文件夹(如桌面),双击仍可正常运行,说明打包无路径依赖问题。
3.4 打包常见报错及解决方法(新手必看)
报错"pyinstaller : 无法将"pyinstaller"识别为 cmdlet、函数、脚本文件或可运行程序的名称":说明pyinstaller未安装成功,在deepseek_exe环境中重新输入
pip install pyinstaller安装。打包成功,但双击exe无反应/报错"找不到图片":检查图片路径是否为相对路径(如./test.jpg),绝对路径(如D:\DeepSeek_Exe_Demo\test.jpg)会导致exe脱离原文件夹后无法找到图片;解决方法:将图片与exe文件放在同一文件夹,或修改代码为相对路径。
exe运行报错"Failed to execute script image_tool":代码调试不彻底,存在隐藏报错,回到VSCode重新运行代码,确保无任何报错后,再重新打包。
四、拓展:Anaconda Prompt和Command Prompt是什么以及区别
很多新手会混淆Anaconda Prompt和Windows自带的Command Prompt(CMD),尤其是本次实操为什么不用CMD打包,下面用通俗的语言解释两者的定义及核心区别,结合本次实操场景理解更易。
4.1 两者定义(通俗版)
Command Prompt(CMD,命令提示符):Windows系统自带的命令行工具,是系统级的命令行,可执行Windows系统命令(如cd、dir、ipconfig),也可执行Python命令,但不具备虚拟环境管理功能。
Anaconda Prompt:Anaconda安装后自带的命令行工具,基于CMD开发,本质是"CMD+Anaconda环境管理功能",可执行CMD的所有命令,同时能直接调用conda命令,管理虚拟环境、安装依赖等。
4.2 核心区别(结合本次实操,重点)
| 对比维度 | Command Prompt(CMD) | Anaconda Prompt |
|---|---|---|
| 环境管理 | 无虚拟环境管理功能,只能使用系统默认的Python环境,若系统中安装多个Python版本,易出现依赖冲突。 | 支持conda虚拟环境(如本次的deepseek_exe环境),可隔离不同项目的依赖,避免冲突,适合多项目开发。 |
| 依赖调用 | 需手动配置环境变量,才能调用pip、Python等命令,若环境变量配置错误,无法执行相关命令。 | 自动关联Anaconda环境,无需手动配置环境变量,激活虚拟环境后,可直接调用pip、conda、Python等命令。 |
| 本次实操适用性 | 不适用:无法激活deepseek_exe虚拟环境,打包时会因依赖缺失(如pillow、pyinstaller仅安装在虚拟环境中)导致打包失败。 | 适用:可激活虚拟环境,调用虚拟环境中的依赖,确保打包时能正常加载所有模块,避免报错。 |
| 使用场景 | 适合执行简单的Windows系统命令,或单个Python环境的简单操作。 | 适合Python多项目开发、依赖管理、打包等场景,是数据科学、Python开发的常用工具。 |
4.3 补充说明
本次实操必须使用Anaconda Prompt,核心原因是:我们的依赖(pillow、pyinstaller)都安装在deepseek_exe虚拟环境中,CMD无法识别该虚拟环境,打包时会找不到相关依赖,导致打包失败;而Anaconda Prompt可直接激活虚拟环境,确保所有依赖都能被正常调用。
五、总结与注意事项(必看,避坑关键)
全程核心:虚拟环境是关键,所有工具安装、代码调试、打包,都需在虚拟环境中进行,避免依赖冲突。
路径禁忌:所有文件(Python文件、图片、工作目录)的路径、命名,不可有中文、空格、特殊字符,否则会导致调试或打包报错。
调试优先:代码必须在VSCode中调试通过,无任何报错后,再进行打包,否则exe文件会无法运行。
exe使用:打包后的exe文件,若代码中使用了本地图片,需将图片与exe文件放在同一文件夹,否则会找不到图片。
拓展延伸:本文以图片处理为例,若需开发其他功能(如数据处理、GUI界面),可通过DeepSeek生成对应代码,调试通过后,按相同步骤打包即可。
最后,若在实操过程中遇到其他报错,可在评论区留言,或通过DeepSeek搜索报错信息,一般均可找到解决方法,新手多尝试几次,即可顺利完成从开发到打包的全流程!









