「課程要求安裝 requests,但終端機提示 pip 不存在,或 pip 指向舊版 Python。」

最快解法:先查 Python 3.14 與 pip 是否屬於同一個解釋器,再建立 venv,並用目前解釋器呼叫 pip;不要先重裝 Python,也不要用 sudo 強行安裝。

這篇適合已經安裝 Python 3.14,卻遇到 pip 找不到、版本不對、Permission deniedexternally-managed-environment、SSL 或套件建置失敗的學生。使用學校電腦、沒有管理員權限,或在遠端 Mac 上跟著課程練習的人,也可以照著排查。

Mac Python 3.14 pip 安裝失敗:先定位問題

同一台 Mac 可以同時存在多套 Python。終端機輸入的 pythonpython3pippip3,不一定來自同一個資料夾。這就像一間教室有多個門牌:你以為進入 3.14 教室,實際上可能走進舊版本教室。

Python 3.14 系列的官方安裝說明包含 pip 與套件安裝方式;目前課程若指定 Python 3.14.7,仍應先核對實際解釋器,而不是只看安裝程式是否完成。Python 3.14 模組安裝說明提供了官方處理方向。

先在終端機逐行執行:

python3 --version
python3 -m pip --version
command -v python3
command -v pip3

python3 -m pip 的重點,是讓目前的 python3 解釋器直接尋找 pip。這比單獨輸入 pip 更容易避免路徑錯配。pip 的命令行行為可對照官方 pip 命令文件

看到的症狀 先觀察什麼 低風險判斷
pip: command not found python3 -m pip --version 是否有結果 pip 可能存在,只是命令路徑未加入 PATH
顯示舊版 Python python3 --version、pip 顯示的路徑 pip 與目前 Python 可能不屬於同一環境
No module named pip 目前 Python 的來源與安裝方式 先按官方方式恢復 pip,不要下載不明修復腳本
Permission denied 安裝目標是否是全域資料夾 不要先用 sudo,先改用 venv
externally-managed-environment 是否正在修改受保護的全域環境 為課程專案建立獨立虛擬環境

注意: 不要把「終端機找不到 pip」直接等同於「pip 沒有安裝」。先執行 python3 -m pip --version,通常可以把命令路徑問題與 pip 本身缺失分開。

pip 缺失與路徑錯配

如果 python3 -m pip --version 能正常顯示版本與路徑,但單獨輸入 pip 失敗,問題多半在 Shell 的 PATH。此時不需要重裝 Python,課程操作也可以固定使用:

python3 -m pip install 套件名稱

若課程要求 Python 3.14,最好先確認命令是否真的指向它。當你的系統提供版本化命令時,可以使用相應的 Python 3.14 解釋器,例如:

python3.14 --version
python3.14 -m pip --version

只有在兩行都指向同一個 Python 3.14 環境後,才繼續安裝。若 python3.14 -m pip 回報沒有 pip,請先查看 Python 官方的 ensurepip 說明,了解目前解釋器能否使用內建的 pip 啟用機制,而不是執行網路上來源不明的腳本。ensurepip 官方文件是判斷這一步的依據。

修復完成的驗收標準不是「畫面沒有紅字」而已,而是:

  • pip 能顯示版本。
  • 顯示的路徑屬於目前 Python 3.14。
  • 後續安裝命令使用同一個解釋器。
  • 課程程式能在相同環境完成 import。

venv 與權限隔離

全域 Python 環境可以想成學校共用教室。你若直接更換裡面的工具,可能影響其他課程,也可能被系統或套件管理規則拒絕。venv 則像是你自己的獨立作業桌:套件放在專案範圍內,不必修改系統資料夾。

在課程專案資料夾內執行:

mkdir python-course
cd python-course
python3 -m venv .venv
source .venv/bin/activate
python -m pip --version
python -m pip install requests

啟用後,命令列通常會出現類似 (.venv) 的提示。你也可以確認目前 Python 的實際位置:

command -v python
python --version
python -c "import sys; print(sys.executable)"

Python 官方的 venv 文件說明了建立與使用虛擬環境的方式。離開環境時執行:

deactivate

這不會刪除 .venv,只會讓目前終端機回到原本的環境。重新開啟終端機後,若要繼續課程,先回到專案資料夾,再執行:

source .venv/bin/activate

不要把以下做法當成新手預設解法:

  • 使用 sudo pip install 修改全域環境。
  • 把套件強行寫入受保護的系統目錄。
  • 以參數繞過外部管理標記。
  • 關閉 SSL 憑證驗證。
  • 在學校電腦上繞過裝置管理政策。

externally-managed-environment 的背景規範,可參考 Python Packaging 的外部管理環境說明。它不是要求你破壞系統,而是在提醒你改用專案隔離環境。

做法 適合課程專案嗎? 原因
.venv 內用 python -m pip 安裝 適合 套件與專案分開,較容易重建
直接修改全域 Python 不建議 可能與其他課程或系統工具互相影響
使用 sudo pip install 不建議 權限提高不等於版本或路徑正確
關閉 SSL 驗證 不可取 會削弱下載時的憑證檢查
學校政策封鎖後自行繞過 不可取 可能違反裝置與網路使用規範

SSL、憑證與校園網路

下載失敗不一定是 pip 壞掉。你需要先看錯誤屬於哪一類:

  • CERTIFICATE_VERIFY_FAILED:偏向憑證或官方安裝器的證書設定。
  • Could not resolve host:可能是 DNS、網域解析或網路限制。
  • ProxyError:可能存在需要登入的代理伺服器。
  • 下載中途斷線:可能是校園網路暫時中斷或連線不穩。
  • 能開網頁但 pip 失敗:瀏覽器與終端機可能使用不同的代理或憑證設定。

macOS 上的 Python 安裝器有自己的證書設定說明,應按照 Python macOS 官方文件核對,而不是把 SSL 驗證關掉。你可以先在獲得允許的網路環境重試,或用手機熱點作為短暫的對照測試;如果換網路後成功,問題就不應繼續歸咎於 pip。

若學校要求代理設定、限制套件來源,請向管理員取得正確設定。不要把學校的限制視為需要繞過的技術障礙。

套件版本與 Apple Silicon 建置

當 pip 回報「沒有符合條件的版本」或顯示建置失敗,常見原因不只一個:

  1. 套件尚未支援 Python 3.14。
  2. 套件沒有提供目前 Apple Silicon 架構可用的 wheel。
  3. 課程指定版本與目前解釋器不一致。
  4. 下載到的是原始碼,需要額外建置工具。
  5. 套件的相依套件本身尚未更新。

wheel 可以理解為已裝訂好的教材;原始碼則像散頁教材,需要在你的環境重新裝訂。Python Packaging 的軟體包格式說明二進制分發格式文件可幫助你分辨這兩種情況。

先查該套件的官方發布頁與 PyPI 元資料,再決定下一步。不要看到 Apple Silicon 就直接換成另一個套件,也不要把別人的成功安裝經驗當成相容性證明。若課程允許,優先採用課程指定的 Python 版本;若指定版本與 3.14 不同,應以課程要求為準,而不是盲目追求最新版本。

可執行的判斷順序是:

  • 先記錄完整錯誤訊息。
  • 查套件官方文件與發布檔案。
  • 確認 Python 版本與處理器架構。
  • 在乾淨 venv 內重試。
  • 若仍失敗,確認課程是否允許另一個 Python 版本。
  • 沒有官方相容性資料時,停止猜測並詢問課程教師。

編輯器與課程專案驗收

終端機安裝成功,不代表編輯器一定使用同一個 Python。最常見的誤區是:你在 .venv 裡裝好了 requests,但編輯器仍使用系統 Python,所以程式執行時出現 ModuleNotFoundError

請在已啟用的 venv 中建立一個最小測試:

python -c "import requests; print(requests.__file__)"

如果課程使用其他套件,把 requests 換成實際名稱即可。驗收時要看三件事:

  • sys.executable 是否指向專案內的 .venv
  • python -m pip show 套件名稱 顯示的位置是否在同一個 .venv
  • 編輯器選取的解釋器是否與上述路徑一致。

不要因為 import 失敗就再次安裝同一個套件。先比較「安裝時使用的 Python」與「執行程式時使用的 Python」。路徑不同,重複安裝只會把混亂擴大。

修復完成勾選清單

  • [ ] python3 或版本化解釋器顯示課程要求的 Python 版本。
  • [ ] python -m pip --version 顯示的 pip 屬於目前 venv。
  • [ ] 專案資料夾內已建立 .venv
  • [ ] 沒有使用 sudo 修改全域 Python。
  • [ ] 已確認校園代理、憑證或網路政策。
  • [ ] 已查閱目標套件的官方發布資料。
  • [ ] 已在 venv 內完成一次套件安裝。
  • [ ] 已用最小 import 測試驗證套件。
  • [ ] 編輯器使用的解釋器與終端機相同。
  • [ ] 關閉終端機後,能重新啟用 venv 並重現安裝步驟。

當其中一項無法完成,就不要進入下一個猜測。先把失敗點固定下來,才能判斷是命令路徑、權限、網路,還是套件本身的相容性。

新手常見疑問

FAQ 已集中回答 pip 與 pip3 的差異、venv 是否需要每個專案各建一份、關閉終端機後如何恢復,以及學校權限與 Apple Silicon 建置問題。對新手而言,最重要的原則是:環境路徑要一致,安裝位置要能被目前解釋器看見。

如果你想先在獨立環境完成練習,可以查看 MACCOME 的 Mac 遠端算力方案,再按照課程要求驗證 Python 與套件,不必立即改動學校電腦的全域設定。

最後的環境選擇

如果目前設備只是 PATH 混亂,或專案尚未建立 venv,應先照本文修復;這比更換設備更快。可是,當學校電腦禁止建立虛擬環境、限制憑證設定,或舊 Python 殘留讓你無法確認解釋器來源時,繼續重裝通常只會消耗課程時間,也可能受限於管理員權限、校園網路和不一致的套件環境。

這種情況下,先用 MACCOME 的乾淨遠端 Mac,以同一份課程專案完成解釋器路徑、venv 建立與最小 import 驗收,再決定是否回頭整理原設備,通常比在截止日前反覆刪除與重裝更穩妥。若你要查看可用的遠端 Mac 交付選項,可參考遠端 Mac 方案頁。不過,若你需要長期離線使用、特殊實體介面,或學校明確禁止遠端環境,保留一台符合課程規範的本地設備會更合適。