iT邦幫忙

2026 iThome 鐵人賽

DAY 24
0
Vibe Coding

一個 Vibe Coding 專案從原型到有人在用系列 第 24 篇

App 上的提示叫使用者打一行指令,他照做了

  • 分享至 

  • xImage
  •  

你的 App 出狀況時,畫面上會跳一行提示,告訴使用者怎麼辦。那行字是誰寫的?寫的時候,他想的是哪一種使用者?

照著 App 的提示打指令,跑出一個看不懂的錯

8 月 6 日晚上,一位不認識的使用者 kyang-06 在 usage(我做的開源小工具,顯示 Claude Code、Codex 這兩個 AI 寫程式工具用了多少額度)開了 issue(問題回報)#92,標題是:

Very confusing on python3 main.py --setup(python3 main.py --setup 很讓人困惑)

他寫的步驟是這樣:用 Homebrew(Mac 上裝軟體的工具)裝好 usage,打開 App,面板上寫著請執行 python3 main.py --setup。App 沒有給更多說明。Mac 的 App 其實是一個資料夾,在 App 上按右鍵選「顯示套件內容」就能打開。他猜,意思是要進到這個資料夾裡,在終端機跑這行指令。

他照做了。終端機回他一個錯誤:

ImportError: cannot import name 'packaged_resource_path' from 'i18n' (/opt/homebrew/lib/python3.9/site-packages/i18n/__init__.py)

最後他問:作者有確認要先裝好哪些套件嗎?要哪個版本?

從他的位置看,這個推論很合理:叫我跑指令、跑了報錯,那一定是我少裝了什麼。但這個錯,不是少裝套件。

藏在 App 裡的程式檔,拿出來跑不起來

他在 App 裡找到的 main.py,是 usage 的起點程式。打包成 App 時,它要用的其他程式都被壓進一個叫 python313.zip 的壓縮檔(Day 23 講過這個壓縮檔)。App 自己帶的 Python 已經設好去那裡找。換電腦上另一個 Python 來跑這個 main.py,它不會去壓縮檔裡找,就找不到其他程式。

錯誤裡的 packaged_resource_path 是一個函式,5 月 24 日另一位使用者送來修正(PR #6,Day 23 講過)時加進去的。

我把 8 月 6 日當天最新的 v0.29.18 下載回來,用 Mac 系統的 /usr/bin/python3 直接跑 App 裡的 main.py(跟他用的不是同一個 Python):

ModuleNotFoundError: No module named 'prefs'

錯誤跟他的不一樣,但都指向同一件事:直接跑這個檔案時,Python 找不到 App 要用的程式。他那行錯誤裡的路徑也看得出來:Python 找到的 i18n,是他電腦上另一個同名的套件(在 site-packages/i18n 裡),裡面當然沒有 usage 的函式。

提示叫人打指令,旁邊就有一顆按鈕做同一件事

先講那句提示要使用者做什麼。Claude Code 視窗底部有一行狀態列;usage 會在 Claude Code 裡裝一小段程式,讓它每次更新這一行時,順便把用量寫進一個檔案(狀態檔),usage 再去讀。找不到狀態檔,通常是這段程式還沒裝好,或是裝好了、還沒開過 Claude Code。--setup 做的就是安裝它。

usage 的面板(點選單列圖示跳出來的那個視窗)上,其實有一顆按鈕:「設定狀態列」。按下去,做的就是 --setup 那件事。我去翻了程式:面板跳出「找不到狀態檔,請執行 python3 main.py --setup」的時候,只要電腦上有 Claude Code 的設定資料夾,這顆按鈕就會跟著出現在同一個面板上。

當時 README(專案首頁的說明)「首次打開」那一段,教的也是按這顆按鈕。

https://ithelp.ithome.com.tw/upload/images/20261008/20183178t2lMC8RnqY.png

同一個專案,同一天,三段文字。只有面板上那行提示,叫人去開終端機。

這句提示寫下時是對的,兩小時後就過時了

我回頭找這句是什麼時候寫的:5 月 17 日晚上 7 點 50 分,usage 的第一個 commit(每次存檔附的說明)就有它。那時 usage 還沒有 App,只能下載原始碼、在終端機跑,「請執行 python3 main.py --setup」對當時的使用者是對的。

兩個小時後,晚上 9 點 43 分,usage 開始打包成 App。

隔天,面板加上了那顆按鈕,當時叫「立即安裝 hook」(hook 就是指裝進 Claude Code 的那一小段程式)。那次的 commit 訊息寫:找不到狀態檔時面板會顯示這顆按鈕,讓使用者按一下就能修好,不用開終端機。

按鈕上面那行提示,沒有跟著改。從加上按鈕那一版算起,usage 又發了 163 個版本,每一版都帶著它。

https://ithelp.ithome.com.tw/upload/images/20261008/20183178hsZXatNxbl.png

6 月,另一位使用者也被這句弄糊塗

6 月 12 日,另一位外人開了 issue #36。他說,只用 Codex、把面板上 Claude Code 區塊藏起來的人,還是會看到這一句:

狀態:找不到狀態檔,請執行 python3 main.py --setup 並打開一次 Claude Code

他說,這句話看起來像有東西壞了要修,讓人困惑,希望藏起 Claude Code 區塊時,這句也一起藏起來。47 分鐘後發出的 v0.19.1 照他的要求改了顯示條件。這句提示的字,沒有動。

6 月 22 日,面板又多了第二句提示:「狀態列沒在更新,請執行 python3 main.py --setup 重新安裝」。8 月 6 日改的時候,這兩句是一起改的。

當晚的修正:兩句提示都改成「請按按鈕」

#92 開出來 4 個半小時後,v0.29.19 發出去,改了兩件事:

  • 兩句提示,5 種語言,都改成指向按鈕:「找不到狀態檔,請按『設定狀態列』,再打開一次 Claude Code」。
  • App 裡的 main.py 被人直接拿來跑時,不再丟出那個錯,改成印一段說明。

我用同一個方式跑 v0.29.19,印出來的是:

This main.py is part of the usage.app bundle and cannot be run directly.
To install the status line, open usage from the menu bar and click "Set Up Status Line".
To run from source instead: https://github.com/aqua5230/usage

這段的意思是:這個 main.py 是 App 的一部分,不能直接跑;要安裝狀態列,請按「Set Up Status Line」;想從原始碼跑,請到 GitHub。

找出你 App 裡叫人打指令的句子

usage 把介面上的文字都放在 i18n.json 這個翻譯檔裡,寫到指令時都用反引號(鍵盤左上角、數字 1 左邊那個符號)包起來。在專案資料夾跑:

grep -n '`' i18n.json

v0.29.18 跑出 10 行:兩句提示,各 5 種語言。v0.29.19 跑出 0 行。

你的專案,介面文字可能放在別的檔案,也不一定用反引號。把上面指令的檔名換成你放介面文字的檔名;不用反引號的話,把要搜的符號換成 python3、npm 這類指令會出現的字。每找到一句,就問一次:看到這句的人,是怎麼裝這個軟體的?他手上有能跑這行指令的東西嗎?

今天可以帶走的

工作單(交給 AI 的任務說明)裡那格「做完怎麼算對」,今天再加兩行(沒用過這張工作單,也可以直接把這兩行交給 AI,當作驗收要求):

做完怎麼算對:
- (Day 4、Day 8 到 Day 23 加的幾行)
- 寫給使用者看的訊息(錯誤提示、空白畫面的說明):寫出這句會在什麼情況出現、看到的人是怎麼裝的。叫人跑指令的,確認裝 App 的人也跑得了;App 裡有按鈕做得到的,就叫他按按鈕
- 改了安裝方式、加了按鈕或新入口:把介面文字裡提到舊做法的句子全部找出來,貼出搜尋結果,一起改

介面上的一句話,會比寫下它時的情況活得久。換了安裝方式、加了按鈕,就回頭搜一次。

kyang-06 至少把 App 裝起來了。6 月 7 日,另一位使用者用 Homebrew 裝 usage,裝到一半就失敗。他在 issue 裡附上原因和修法,我照他的修法改,38 分鐘後回他:修好了。6 月 9 日清晨,又一位使用者在一台乾淨的電腦上裝,還是裝不起來。明天看這一次。

參考資料

  • usage 專案:https://github.com/aqua5230/usage
  • issue #92〈Very confusing on python3 main.py --setup〉:https://github.com/aqua5230/usage/issues/92
  • issue #36〈Hide Claude Code status error when Claude Code section is hidden〉:https://github.com/aqua5230/usage/issues/36
  • 5 月 18 日加上按鈕:https://github.com/aqua5230/usage/commit/0618f59
  • v0.29.19 修正:https://github.com/aqua5230/usage/commit/c413af3

上一篇
修好後補了測試,兩天後 App 又打不開了
系列文
一個 Vibe Coding 專案從原型到有人在用 共 24 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言