科技 · 實用指南
pip 顯示已安裝但命令不存在?改 PATH 前先定位腳本
先證明哪個 Python 安裝了套件、它公開了哪個命令,以及目前程序搜尋哪個腳本目錄,再決定重裝或修改 PATH。

pip 成功只代表某個 Python 環境接收了這個發行套件,不能證明套件提供你輸入的命令、腳本位於 shell 會搜尋的目錄,或 shell 正在使用同一個 Python。
從實際執行安裝的直譯器開始:列出 console scripts,計算它的 scripts 目錄,再與報錯程序的 PATH 逐字比較。之後才選擇修 PATH、改用正確命令名稱或移至隔離的 pipx。
先保存安裝器與命令證據
記錄失敗命令、安裝命令、工作目錄、實際執行它的 shell 或服務,以及 python --version 與 python -m pip --version;後者同時標示 pip 及其所屬的 Python 環境。
不要先用 sudo、全面重裝或猜測 PATH。這些動作可能建立第二份安裝、改變擁有權,並掩蓋原本的邊界。
證明發行套件與真正的命令名稱
執行 python -m pip show PACKAGE,確認 Location 屬於預期的直譯器;再用 Python 中繼資料查看 console_scripts。命令名稱可能不同於套件名稱,空結果則表示沒有可尋找的 CLI 進入點。
能夠 import 的模組不等於終端應用。若專案文件支援 python -m MODULE,應使用該進入點,不要自行建立包裝器,也不要把 site-packages 加入 PATH。
計算精確的 scripts 目錄
讓同一個直譯器輸出執行檔與 scripts 路徑:python -c "import sys,sysconfig; print(sys.executable); print(sysconfig.get_path(\"scripts\"))"。使用者安裝也可用 python -m site --user-base 查看基準路徑。
檢查預期檔案是否確實存在。若不存在就停止:PATH 無法發現未產生的檔案;應重新核對進入點名稱、安裝環境與安裝警告。
比較實際報錯程序的 PATH
在同一個 shell、IDE 終端、服務、排程工作或容器中列印 PATH,並依順序比較正規化後的絕對目錄。PATH 中的波浪號不一定會被所有程式展開,不同 shell 也會讀取不同的啟動檔。
腳本存在但目錄缺失時,只把該精確目錄加入適當的使用者或服務設定,再啟動新程序。不要覆寫原有 PATH,也不要加入會暴露無關程式的寬泛上層目錄。
選擇有限的修正並驗證
一般 pip 安裝只修正已證明缺失的 PATH 項目,或使用文件規定的 python -m MODULE。獨立 CLI 可改用 pipx 安裝,執行 pipx ensurepath,開啟新終端,並在 pipx list 中確認應用。
只有當同一個報錯程序能解析預期執行檔,而且 --version 與已檢查的發行套件一致時,才算完成。若解析到另一份副本,應先修正 PATH 順序或直譯器,暫時不要解除安裝。
