
前言:README 裡的安裝密碼
當你從 GitHub 下載(Clone)一個專案後,第一步通常是閱讀 README.md。你可能會看到 pip install -r requirements.txt,也可能看到 pip install -e .。這兩者有什麼區別?而指令中常出現的 extras 又代表什麼?理解這些細節,是邁向專業開發者的第一步。
一、生活與產業中的 Extras:核心之外的擴充
在進入代碼前,我們先理解 "Extras" 的廣義含義,這有助於理解程式設計的邏輯:- 影視產業(臨時演員): 指背景中不具名、通常無台詞的演員(Background Actors),增加場景真實感。
- 軟體與遊戲(額外內容): 指主程式外的附加價值,如遊戲解鎖插畫、原聲帶(OST)或 DVD 幕後花絮。
- 商業服務(加價購): 基本方案外的加購項,如飯店的迷你吧或租車的兒童安全座椅。
在 Python 領域,Extras 則指「非核心的功能」。開發者將進階功能(如資料庫支援、PDF 導出)設為 Extras,讓使用者依需求自行「加裝」特定的依賴套件。
二、基礎必備:pip install -r requirements.txt
這是最常見的安裝方式。requirements.txt 就像是一份靜態購物清單。
- 功能: 逐行讀取文件中的套件名稱與版本號,並一次性安裝。
- 特性: 它僅僅是安裝「別人的套件」,並不會把你目前抓下來的這個專案本身變成一個可以被
import的模組。 - 適用場景: 部署生產環境、單純執行別人寫好的程式碼。
三、開發者神器:pip install -e . (可編輯模式)
如果你打算修改程式碼或貢獻開源專案,這行指令才是主角。
- 可編輯模式 (-e): Editable 的縮寫。它不會複製程式碼到系統資料夾,而是建立一個「符號連結」指向你的原始碼路徑。
- 即時生效: 修改 .py 檔案後無需重新安裝,Python 會直接讀取新內容。
- 方便除錯: 適合一邊開發 Library,一邊在另一個腳本測試。
- 當前目錄 (.): 告訴 pip 在目前資料夾尋找安裝設定檔(如
pyproject.toml或setup.py)。
四、當 Extras 遇上可編輯模式
在 GitHub 文件中,你常會看到結合兩者的進階寫法:pip install -e ".[dev]"。
這代表:
- 以可編輯模式安裝專案。
- 同時安裝設定檔中定義為
dev分組的開發用額外依賴(例如跑測試用的pytest或格式化代碼用的black)。這比單純的requirements.txt更具靈活性,能精準區分「執行所需」與「開發所需」的套件。
五、開發實務避坑指南
在終端機操作時,請記住以下三個要點:
- 引號的必要性: 在 macOS 預設的 Zsh 環境下,包含中括號的指令(如
.[test])必須加雙引號,否則會報no matches found錯誤。 - 虛擬環境優先: 強烈建議在
venv或conda中執行,避免弄亂系統全域環境。 - 如何確認成功? 安裝後輸入
pip list。若專案版本號旁顯示了你的本地資料夾路徑,代表可編輯模式已成功運作。
結語
從影視背景到程式碼連結,「Extras」的核心精神始終是靈活擴充。掌握了 requirements.txt 與 -e . 的差異,你就能根據需求選擇最合適的環境建置方式,無論是單純執行應用,還是深入參與開源開發,都能游刃有餘。



















