|
|
34bc361527
|
fix(app): Python 相依檢查不得阻斷啟動
上一個 commit 讓 Windows 完全開不了:階段 2 直接失敗,
「python runtime unavailable: no python runtime available」。
根因:健康檢查的 probe 環境與實際跑推論的環境不一致。
`import kp` 在 import 當下就要載入 6 個 native DLL(libkplus / libusb /
libwdi 等),這些不在 Windows 預設搜尋路徑。專案裡每一處真正用 kp 的地方
都自己補了路徑(kl720_driver.go:142 注入 PATH、platform_windows.go:68
用 add_dll_directory),只有新加的 probe 是裸跑 python -c "import kp"。
於是健康的 venv 被判成壞掉 → 重裝 wheels → 用同一個壞 probe 再驗一次 →
仍失敗 → 回 error → 連 app 都進不去。使用者前一天才手動重建好、推論正常
的環境,裝上新版就完全無法啟動。
修正:
- reuseExistingVenv 不回傳 error。venv 存在時的回傳值恆等於舊版
(永遠是 pythonBin, nil),要退化成阻斷版必須改簽章,不會不小心發生
- 首次安裝路徑區分致命與非致命:pip 真的失敗才算致命,probe 沒過就放行
並記 warning
- probe 在 import 前補上 DLL 搜尋路徑,對齊 kl720_driver.go 的實際做法
- 新增 GetPythonDepsWarning binding,讓提示出現在 app 內而非啟動阻斷點
原本要解的「wheels 半套安裝永久卡住」仍然有解,但改為非阻斷:修不好也讓
使用者進到 app 看見具體原因,而不是擋在啟動畫面外。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-23 00:18:13 +08:00 |
|