"/>

Python 项目打包为 .exe 并设置开机自启操作指南

文档信息

  • 发布日期:2025年3月10日
  • 适用平台:Windows 10/11
  • 所需工具:PyInstaller 6.12.0,Python 3.8.20 (conda)
  • 文档作者:技术支持团队

目标

将项目目录 D:\aonedrive\OneDrive - MSFT\桌面\shiyan\falskchat 打包为可执行文件 run.exe,包含目录下所有文件(如 appdocsconfig.json 等),实现开机自启并以后台运行模式执行。


操作步骤

1. 环境配置

  • 确认已安装 Python 3.8.20 及 PyInstaller。
  • 打开命令提示符,激活虚拟环境(例如 flaskchat):
    conda activate flaskchat
    
  • 切换至项目根目录:
    cd D:\aonedrive\OneDrive - MSFT\桌面\shiyan\falskchat
    

2. 打包项目为 .exe

使用 PyInstaller 将 run.py 及其依赖文件打包为单一可执行文件。

操作步骤:

  1. 清理现有构建文件(可选):

    • 若存在 builddist 目录,执行以下命令删除:
      rmdir /s /q build
      rmdir /s /q dist
      
  2. 执行打包命令

    • 运行以下单行命令,包含所有文件和目录:
      pyinstaller --onefile --noconsole --add-data "app;app" --add-data "config.json;." --add-data "docker-compose.yml;." --add-data "docker-manage.sh;." --add-data "Dockerfile;." --add-data "docs;docs" --add-data "environment.yml;." --add-data "README.md;." --add-data "requirements.txt;." --add-data "start.bat;." --add-data "test_api.py;." --add-data "test_api_debug.py;." --add-data "test_simple.py;." run.py
      
    • 参数说明
      • --onefile:生成单一 .exe 文件。
      • --noconsole:启用后台运行模式,无控制台窗口。
      • --add-data:指定附加文件和目录,确保 run.py 访问所需资源。
      • run.py:打包入口文件。
  3. 验证打包结果

    • 打包完成后,检查 dist 目录下是否生成 run.exe
    • 执行 dist\run.exe 进行测试,确认能正常访问文件(如 config.jsondocker-compose.yml)。
    • 若出现错误(如文件未找到),检查 --add-data 路径是否与实际文件位置一致,或验证 run.py 使用相对路径。

3. 配置开机自启

选择以下任一方法设置 run.exe 开机自启。

方法 1:使用“启动”文件夹

  1. 打开启动文件夹

    • Win + R,输入 shell:startup,回车。
    • 路径示例:C:\Users\58425\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
  2. 添加快捷方式

    • 导航至 D:\aonedrive\OneDrive - MSFT\桌面\shiyan\falskchat\dist
    • 右键 run.exe,选择“创建快捷方式”。
    • 将快捷方式剪切并粘贴至“启动”文件夹。
  3. 验证

    • 重启系统,使用任务管理器(Ctrl + Shift + Esc)确认 run.exe 进程是否运行。

方法 2:通过注册表配置

  1. 启动注册表编辑器

    • Win + R,输入 regedit,回车。
  2. 定位自启键

    • 导航至:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
  3. 添加自启项

    • 右键 Run 键,选择新建 > 字符串值,命名为 MyFlaskChat
    • 双击该项,在“数值数据”字段输入 run.exe 完整路径,例如:
      "D:\aonedrive\OneDrive - MSFT\桌面\shiyan\falskchat\dist\run.exe"
      
    • 点击“确定”保存。
  4. 验证

    • 重启系统,确认 run.exe 在后台运行。

4. 验证与进程管理

  • 验证运行状态:重启后,打开任务管理器检查 run.exe 进程。
  • 终止进程
    • 任务管理器:Ctrl + Shift + Esc > 定位 run.exe > 选择“结束任务”。
    • 命令行:执行 taskkill /IM run.exe /F
  • 移除自启
    • 方法 1:删除“启动”文件夹中的 run.exe 快捷方式。
    • 方法 2:删除注册表中 MyFlaskChat 项。

注意事项

  • 路径依赖性run.py 必须使用相对路径(如 open("config.json", "r"))访问文件,否则需调整代码实现动态路径(当前未修改)。
  • 文件完整性:打包失败时,检查 --add-data 列出的文件是否存在于项目根目录。
  • 权限要求:若 run.exe 需要管理员权限,右键快捷方式或注册表值,启用“以管理员身份运行”。
  • 调试支持:如需排查问题,临时移除 --noconsole 参数,或在 run.py 中添加日志输出至文件。

常见问题及解决

  • 错误:文件未找到:验证 --add-data 路径,重新执行打包。
  • 循环引用错误:避免将 builddist 目录包含在 --add-data 中。
  • 自启失败:检查路径配置是否正确,重启系统后验证。