root
e4fdb666ce
fix: 按 Tauri 最佳实践重构 Python 进程通信
🔧 核心重构:
1. 使用 Tauri Shell Plugin 替代直接 Command:
- 导入 tauri_plugin_shell::ShellExt
- 使用 app.shell().command() 创建进程
- 利用 CommandEvent 处理进程输出
- 支持异步事件驱动的进程通信
2. 改进编码处理:
- 在 Windows 下设置 PYTHONIOENCODING=utf-8
- 设置 PYTHONUTF8=1 环境变量
- 使用 String::from_utf8_lossy 处理输出
- 确保跨平台编码兼容性
3. 优化 JSON 输出解析:
- 实时检测 JSON 格式的输出行
- 提取最后的完整 JSON 对象
- 区分进度信息和最终结果
- 保持向后兼容性
4. 增强错误处理和调试:
- 分别收集 stdout 和 stderr
- 详细的进程状态跟踪
- 改进的错误信息格式
- 实时输出日志便于调试
5. 函数签名更新:
- 所有 Python 命令函数添加 AppHandle 参数
- 支持 Tauri 的依赖注入模式
- 保持类型安全和错误处理
✅ 修复效果:
- 解决进程通信问题 ✓
- 正确识别成功/失败状态 ✓
- 改善 Windows 编码支持 ✓
- 符合 Tauri 社区最佳实践 ✓
现在 Python 进程通信应该更加稳定可靠!
2025-07-10 12:51:30 +08:00
..
2025-07-10 10:26:03 +08:00
2025-07-10 09:41:40 +08:00
2025-07-10 12:51:30 +08:00
2025-07-10 09:41:40 +08:00
2025-07-10 09:41:40 +08:00
2025-07-10 11:40:23 +08:00
2025-07-10 10:26:03 +08:00