自動化與 Agent
搬資料夾之後,AI 工具找不到套件:完整排查與修復筆記
改完程式碼裡每一個寫死的路徑,服務還是報「找不到套件」——套件明明都在,一個都沒少。真正的兇手是套件管理器自己的「可編輯安裝」機制,跟你程式碼裡的路徑對不對完全無關。
這份筆記給你什麼
讀完後你會知道:搬移一個裝過 Python 虛擬環境(venv)或 Node.js 專案(尤其是用 pnpm)的資料夾之後,為什麼服務會報「找不到套件」,以及怎麼在 5 分鐘內排查出真正原因並修好。全程不用重寫任何程式碼。
一個核心觀念
「可編輯安裝」(editable install)這種裝套件的方式,會在安裝當下,把「這個套件的原始碼放在哪個絕對路徑」寫死記下來。這個記錄跟你自己程式碼裡寫的路徑完全是兩回事,你就算把程式碼裡所有路徑都改對了,這條記錄也不會自動更新——資料夾一搬家,它就變成一條指向空氣的死連結。
判斷你是不是踩到這個坑的訊號:服務啟動時報錯,內容是「找不到某個套件」或「模組不存在」,但你去檢查那個套件的資料夾,它明明就在。
按步驟做
Step 1|先確認真的是這個坑,不是別的問題
打開一個終端機(命令提示字元或 PowerShell 都可以),找到報錯訊息裡提到的那個套件名稱,去確認它的檔案是不是真的存在。
- Python:套件通常在
你的虛擬環境資料夾\Lib\site-packages\底下 - Node.js:套件通常在專案的
node_modules\底下
如果套件檔案確實都在,卻還是報錯找不到,那你很可能就是這個坑。
🪄 問 AI 咒語(如果你不確定套件裝在哪、或不確定怎麼查)
我在 Windows 上執行 [你的程式/服務名稱] 時出現這個錯誤:[貼上完整錯誤訊息]。請一步一步教我怎麼確認這個套件的檔案是否真的存在於磁碟上,以及它應該在哪個資料夾。
Step 2(Python)|找到並修復 .pth 檔案
如果你的專案是用 pip install -e . 這種方式裝套件(開發模式安裝),去這裡找:
你的虛擬環境資料夾\Lib\site-packages\
找檔名裡有 __editable__ 或 _editable_impl_ 的檔案(副檔名是 .pth)。用純文字編輯器(記事本就可以)打開它,裡面通常就一行文字,是一個絕對路徑。
把這行路徑手動改成資料夾搬家後的新路徑,存檔即可,不用重新安裝任何東西。
🪄 問 AI 咒語
我在 Windows 上用 [Python版本] 建立的虛擬環境,資料夾從 [舊路徑] 搬到了 [新路徑]。請教我怎麼找到並修復虛擬環境裡因為可編輯安裝(pip install -e)產生的
.pth檔案,一步一步來。
Step 3(Node.js / pnpm)|重新安裝讓連結重建
如果套件檔案本身是「符號連結」(不是純文字檔,是檔案系統層級的連結),文字編輯器打不開、改不了。這種情況通常出現在用 pnpm 管理套件的專案。
修法是重新執行一次安裝指令,讓套件管理器在新位置重新建立所有連結:
cd 你的專案新路徑
pnpm install --force
--force 這個參數是為了避免它跳出互動式的確認詢問卡住流程。這一步不會重新下載套件(套件本身已經下載過、存在本機的共用倉庫裡),只是重新建立連結,通常幾秒到幾十秒內就會完成。
如果你的專案用的是 npm 或 yarn 而不是 pnpm,指令會不太一樣。
🪄 問 AI 咒語
我的 Node.js 專案用的套件管理器是 [pnpm / npm / yarn,不確定的話貼一下專案資料夾裡有沒有 pnpm-lock.yaml 或 package-lock.json 或 yarn.lock],專案資料夾從 [舊路徑] 搬到了 [新路徑] 之後啟動報錯 [貼上完整錯誤訊息]。請教我怎麼重新安裝讓套件連結在新路徑下正確重建,一步一步來,並解釋每個指令在做什麼。
Step 4|重啟所有相關的背景服務
這一步最容易被忽略。任何在搬家「之前」就已經啟動、搬家後沒有重新啟動過的服務或程式,即使你把磁碟上的檔案全部修好了,它也不會自己知道——因為它啟動的當下就已經把路徑資訊算好、記在自己的記憶體裡了,不會因為你事後改了檔案就自動更新。
排查法:先確認有沒有殘留的舊行程還在跑(Windows 用工作管理員或 tasklist 指令查),有的話先關掉,再重新啟動一次服務。
🪄 問 AI 咒語
我在 Windows 上要確認某個程式(例如 [程式名稱])是不是還有舊的行程在背景執行,並且要安全地關掉它再重新啟動。請教我怎麼用工作管理員或命令列查詢與關閉,一步一步來。
Step 5|驗證,不要只看「沒報錯」
服務重新啟動後,不要只看啟動畫面沒有報錯就以為修好了。實際去操作一次核心功能(例如真的送一個請求、真的點一次按鈕),確認真的能拿到正確結果,才算真正驗證過。有些壞法(例如某個功能靜默失敗)不會在啟動時報錯,只有真的用了才會發現。
你一定會踩的坑
-
錯誤訊息會誤導你去重裝套件——「找不到套件」聽起來就是套件沒裝好,但如果你已經確認套件檔案真的存在,重裝往往沒用(甚至可能白花時間下載一次),先照上面的 Step 1 確認再動手。
-
JSON/設定檔這類資料檔也可能藏著寫死的絕對路徑,不是只有程式碼檔案(.py/.js 這類)才要檢查。搬完資料夾後,值得對整個專案做一次全文搜尋,找找有沒有殘留舊路徑的字串(Windows 可以用檔案總管的搜尋,或請 AI 幫你寫一行指令掃描)。
🪄 問 AI 咒語
請幫我寫一個指令,在 [你的專案資料夾路徑] 底下搜尋所有還包含舊路徑字串 [舊路徑] 的檔案(不限副檔名),列出檔名跟該路徑出現的位置,讓我一個一個確認要不要修正。
萬用救援:卡住怎麼問 AI
如果照著步驟做還是卡住,把下面這段填一填直接貼給 AI 助理(ChatGPT / Claude 都可以):
我是新手,正在照著一份筆記排查「資料夾搬家後套件連結斷掉」的問題。我目前執行到「[貼上你卡住的那個步驟]」,出現了這個錯誤/情況:「[貼上完整錯誤訊息或畫面描述,截圖也可以]」。我的作業系統是 Windows,用的工具是 [Python / Node.js,不確定就寫「不確定」]。請一步一步引導我排查,每次只給我一個動作,等我回報結果再告訴我下一步。
一句話總結
搬完資料夾,「改程式碼裡的路徑」跟「修套件管理器自己的內部連結」是兩件獨立的事;服務也要記得重啟;驗證要用真實操作,不能只看啟動有沒有報錯。
這是一人公司公開實驗的一部分。想收到後續完整 SOP 與透明月報,訂閱電子報。