Agentic Research

相依套件(Dependency)

又稱:依賴 · 依賴套件 · dependencies · lockfile · 鎖定檔 · 版本衝突

你的程式要能動,就必須先有別人寫的程式在。那些「必須先有的」就是相依套件。

你會在什麼時候遇到它

AI 工具的安裝失敗,大半是相依套件問題:少了一個、版本不對、兩個套件各自要求互相打架的版本。不認得「dependency」這個詞,你會一直以為是自己指令下錯,但真正要修的是那張清單。

打個比方

像一道菜的材料清單。食譜本身不是菜,少任何一樣就端不出來;而每樣材料又各有自己的來源與規格 —— 相依套件的麻煩在於清單會一層一層往下長。

最小範例

你直接宣告的:      openai
openai 自己需要的:  httpx、pydantic、anyio…
pydantic 又需要:    annotated-types、pydantic-core…
──────────────────────────────────────────────
你只寫了一行,pip 實際裝了十幾個套件

宣告清單   requirements.txt(npm 那邊是 package.json)
鎖定檔     package-lock.json(npm)—— 記下每個套件「確切裝到哪一版」

重點是「你只宣告了一層,實際裝了很多層」。所以出錯時,問題套件常常根本不是你親手裝的那個。鎖定檔的用途,是讓下次、以及別人的機器,裝回完全相同的版本組合。

最常搞錯的地方

  • 以為「裝最新版一定最好」。AI 生態系的套件常常指定版本範圍,一個太新的相依套件就能讓整條鏈失敗。照著說明文件鎖版本不是保守,是必要。
  • 把鎖定檔當成多餘檔案刪掉,或加進 .gitignore。它是「這一組版本確定能動」的紀錄;刪掉之後每個人裝到的都不一樣,除錯就變成猜謎。

相關詞條

下一步