基于DeepSeek+Python开发软件并打包为exe(VSCode+Anaconda Prompt实操)

目录

​编辑

一、工具确认与安装(基础前提,必做)

[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安装与环境配置

  1. 下载地址:Anaconda官方下载,选择Windows版本(建议下载Python 3.8+版本,兼容性更好,避免过高版本导致打包报错)。

  2. 安装步骤:

    1. 双击安装包,默认下一步,重点勾选"Add Anaconda3 to my PATH environment variable"(添加环境变量,新手必勾,避免后续无法调用conda命令)。

    2. 安装路径建议默认,或自定义路径(路径中不可有中文、空格,否则后续打包会报错)。

    3. 安装完成后,关闭所有窗口,打开"Anaconda Prompt"(开始菜单搜索即可),输入命令conda --version,若显示conda版本号(如conda 23.10.0),则安装成功。

  3. 创建并激活虚拟环境(关键,避免依赖冲突):

    1. 打开Anaconda Prompt,输入命令创建环境(环境名自定义,这里用deepseek_exe):conda create -n deepseek_exe python=3.9,输入y确认安装依赖。

    2. 激活环境:输入conda activate deepseek_exe,命令行左侧出现"(deepseek_exe)",则环境激活成功(后续所有操作均需在该环境下进行)。

1.3 DeepSeek准备

DeepSeek使用:无需安装,直接打开网页版DeepSeek官网

二、图片选择与DeepSeek代码生成与调试(核心开发环节)

本环节将完成:选择合适的图片素材 → 用DeepSeek生成Python图片处理代码 → 在VSCode中调试代码,确保代码可正常运行(以"图片读取、尺寸调整、显示"为例,新手可直接复用,也可根据需求修改)。

2.1 图片选择与准备

  1. 图片要求:选择JPG/PNG格式的图片(避免使用GIF动图,后续调试易报错),图片路径建议放在VSCode工作目录下(如:新建文件夹"DeepSeek_Exe_Demo",将图片命名为"test.jpg",放入该文件夹)。

  2. 路径注意:图片路径、工作目录路径,不可有中文、空格、特殊字符(如"测试图片.jpg""DeepSeek Demo"均不可,建议改为"test.jpg""DeepSeek_Exe_Demo"),否则会出现"路径找不到"的报错。

2.2 DeepSeek代码生成(精准提示词是关键)

1.打开DeepSeek-Coder模型,输入以下提示词(可直接复制,修改图片路径即可),生成Python代码:

提示词:根据上述图片使用python语言写一个顶置在电脑最高图层的软件。

DeepSeek生成的代码示例(可直接复用,需确认图片路径正确):

python 复制代码
import 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代码调试(必做,避免打包后无法运行)

  1. 运行代码调试:

    1. 点击代码右上角的"运行"按钮(或按F5),选择"Python文件"运行方式。

    2. 正常情况:会弹出调整后的图片窗口,关闭图片窗口后,VSCode终端会输出"图片处理完成!",无报错则调试成功。

    3. 常见报错及解决:

      • 报错"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 打包前准备(关键,避免打包失败)

  1. 确认环境:打开Anaconda Prompt,下载插件Pyinstaller

    bash 复制代码
    install Pyinstaller
  2. 切换工作目录:输入命令cd 你的VSCode工作目录路径(如:我的工作目录是"D:\DeepSeek_Exe_Demo",则输入cd D:\DeepSeek_Exe_Demo),切换到Python文件所在的目录。

    bash 复制代码
    cd D:\DeepSeek_Exe_Demo

3.2 执行打包命令(核心步骤)

在Anaconda Prompt中,输入以下打包命令(根据需求选择,新手优先选择命令1,简单无冗余):

  1. 命令1(推荐,单文件+隐藏控制台):

    bash 复制代码
    pyinstaller -F -w image_tool.py
    1. 参数说明:-F(打包为单个exe文件,方便传输和使用)、-w(隐藏运行时的控制台窗口,适合GUI程序,本次图片显示程序推荐使用)。
  2. 命令2(带图标,个性化):

    bash 复制代码
    pyinstaller -F -w -i icon.ico image_tool.py
    1. 参数说明:-i icon.ico(给exe文件添加图标,icon.ico需放在当前工作目录下,可网上下载.ico格式图标,命名为icon.ico)。

输入命令后,按回车键,开始打包,打包过程中会显示"Building EXE from EXE-00.toc completed successfully.",则打包成功(打包时间根据代码复杂度、依赖多少而定,一般1-5分钟)。

3.3 找到exe文件并验证

  1. 查找exe文件:打包成功后,工作目录下会生成"dist"文件夹,打开该文件夹,即可找到"image_tool.exe"文件(单文件打包,仅这一个exe,可单独复制使用)。

  2. 验证exe文件:

    1. 双击"image_tool.exe",若正常弹出图片窗口,关闭窗口后无报错,说明打包成功,exe文件可正常使用。

    2. 将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可直接激活虚拟环境,确保所有依赖都能被正常调用。

五、总结与注意事项(必看,避坑关键)

  1. 全程核心:虚拟环境是关键,所有工具安装、代码调试、打包,都需在虚拟环境中进行,避免依赖冲突。

  2. 路径禁忌:所有文件(Python文件、图片、工作目录)的路径、命名,不可有中文、空格、特殊字符,否则会导致调试或打包报错。

  3. 调试优先:代码必须在VSCode中调试通过,无任何报错后,再进行打包,否则exe文件会无法运行。

  4. exe使用:打包后的exe文件,若代码中使用了本地图片,需将图片与exe文件放在同一文件夹,否则会找不到图片。

  5. 拓展延伸:本文以图片处理为例,若需开发其他功能(如数据处理、GUI界面),可通过DeepSeek生成对应代码,调试通过后,按相同步骤打包即可。

最后,若在实操过程中遇到其他报错,可在评论区留言,或通过DeepSeek搜索报错信息,一般均可找到解决方法,新手多尝试几次,即可顺利完成从开发到打包的全流程!

相关推荐
52Hz1182 小时前
力扣46.全排列、78.子集、17.电话号码的字母组合
python·leetcode
子午2 小时前
【宠物识别系统】Python+深度学习+人工智能+算法模型+图像识别+TensorFlow+2026计算机毕设项目
人工智能·python·深度学习
好家伙VCC2 小时前
# 发散创新:用Python+Pandas构建高效BI数据清洗流水线在现代数据分析领域,**BI(商业智能)工具的核心竞
java·python·数据分析·pandas
七夜zippoe2 小时前
TensorFlow 2.x深度实战:从Keras API到自定义训练循环
人工智能·python·tensorflow·keras
励ℳ2 小时前
Python环境操作完全指南
开发语言·python
ljxp12345682 小时前
二叉树中序遍历算法详解
python
查无此人byebye3 小时前
【超详细解读(GPU)】基于DiT的MNIST扩散模型(DDPM)完整实现
python·深度学习·nlp·transformer·多分类
赵谨言3 小时前
基于Python和ArcPy的不动产数据入库技术与运用
大数据·开发语言·经验分享·python
—Miss. Z—3 小时前
计算机软件资格考试—Python补充
开发语言·python