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
,包含目录下所有文件(如 app
、docs
、config.json
等),实现开机自启并以后台运行模式执行。
操作步骤
1. 环境配置
- 确认已安装 Python 3.8.20 及 PyInstaller。
- 打开命令提示符,激活虚拟环境(例如
flaskchat
):conda activate flaskchat
- 切换至项目根目录:
cd D:\aonedrive\OneDrive - MSFT\桌面\shiyan\falskchat
2. 打包项目为 .exe
使用 PyInstaller 将 run.py
及其依赖文件打包为单一可执行文件。
操作步骤:
-
清理现有构建文件(可选):
- 若存在
build
和dist
目录,执行以下命令删除:rmdir /s /q build rmdir /s /q dist
- 若存在
-
执行打包命令:
- 运行以下单行命令,包含所有文件和目录:
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
:打包入口文件。
- 运行以下单行命令,包含所有文件和目录:
-
验证打包结果:
- 打包完成后,检查
dist
目录下是否生成run.exe
。 - 执行
dist\run.exe
进行测试,确认能正常访问文件(如config.json
、docker-compose.yml
)。 - 若出现错误(如文件未找到),检查
--add-data
路径是否与实际文件位置一致,或验证run.py
使用相对路径。
- 打包完成后,检查
3. 配置开机自启
选择以下任一方法设置 run.exe
开机自启。
方法 1:使用“启动”文件夹
-
打开启动文件夹:
- 按
Win + R
,输入shell:startup
,回车。 - 路径示例:
C:\Users\58425\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
。
- 按
-
添加快捷方式:
- 导航至
D:\aonedrive\OneDrive - MSFT\桌面\shiyan\falskchat\dist
。 - 右键
run.exe
,选择“创建快捷方式”。 - 将快捷方式剪切并粘贴至“启动”文件夹。
- 导航至
-
验证:
- 重启系统,使用任务管理器(
Ctrl + Shift + Esc
)确认run.exe
进程是否运行。
- 重启系统,使用任务管理器(
方法 2:通过注册表配置
-
启动注册表编辑器:
- 按
Win + R
,输入regedit
,回车。
- 按
-
定位自启键:
- 导航至:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
。
- 导航至:
-
添加自启项:
- 右键
Run
键,选择新建 > 字符串值
,命名为MyFlaskChat
。 - 双击该项,在“数值数据”字段输入
run.exe
完整路径,例如:"D:\aonedrive\OneDrive - MSFT\桌面\shiyan\falskchat\dist\run.exe"
- 点击“确定”保存。
- 右键
-
验证:
- 重启系统,确认
run.exe
在后台运行。
- 重启系统,确认
4. 验证与进程管理
- 验证运行状态:重启后,打开任务管理器检查
run.exe
进程。 - 终止进程:
- 任务管理器:
Ctrl + Shift + Esc
> 定位run.exe
> 选择“结束任务”。 - 命令行:执行
taskkill /IM run.exe /F
。
- 任务管理器:
- 移除自启:
- 方法 1:删除“启动”文件夹中的
run.exe
快捷方式。 - 方法 2:删除注册表中
MyFlaskChat
项。
- 方法 1:删除“启动”文件夹中的
注意事项
- 路径依赖性:
run.py
必须使用相对路径(如open("config.json", "r")
)访问文件,否则需调整代码实现动态路径(当前未修改)。 - 文件完整性:打包失败时,检查
--add-data
列出的文件是否存在于项目根目录。 - 权限要求:若
run.exe
需要管理员权限,右键快捷方式或注册表值,启用“以管理员身份运行”。 - 调试支持:如需排查问题,临时移除
--noconsole
参数,或在run.py
中添加日志输出至文件。
常见问题及解决
- 错误:文件未找到:验证
--add-data
路径,重新执行打包。 - 循环引用错误:避免将
build
或dist
目录包含在--add-data
中。 - 自启失败:检查路径配置是否正确,重启系统后验证。