テクノロジー · 実用ガイド

pip はインストール済みなのにコマンドがない?PATH 編集前にスクリプトを特定する

どの Python が配布物を入れ、どのコマンドを公開し、失敗したプロセスがどの scripts ディレクトリを検索するかを確認してから修正します。

Python インストーラーから scripts ディレクトリと shell PATH までを追うオリジナル技術図。
オリジナルイラスト:PATH を変える前にインストーラー、スクリプト、shell を確認。 Watch at Ease

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 を調べます。名前が異なることも、空であることもあります。

import できるモジュールが端末アプリとは限りません。公式に python -m MODULE が案内されている場合はそれを使い、site-packages を PATH に加えません。

正確な scripts ディレクトリを計算する

同じ Python で python -c "import sys,sysconfig; print(sys.executable); print(sysconfig.get_path(\"scripts\"))" を実行します。ユーザーインストールでは python -m site --user-base も基点を示します。

その絶対ディレクトリに期待する実行ファイルがあるか確認します。なければ PATH では直らないため、入口名、環境、警告を再確認します。

失敗するプロセスの PATH と比較する

同じ shell、IDE、サービス、タスク、コンテナーで PATH を表示し、正規化した絶対ディレクトリを順番どおり比較します。PATH 内のチルダを全プログラムが展開するとは限りません。

ファイルがありディレクトリだけが不足する場合、そのディレクトリだけを適切な設定へ追加し、新しいプロセスを起動します。既存 PATH を上書きしません。

限定した修復を選んで検証する

通常の pip インストールなら確認済み PATH だけを直すか、文書化された python -m MODULE を使います。単独 CLI なら pipx、pipx ensurepath、新しい端末、pipx list の順で確認します。

同じ失敗プロセスが目的の実行ファイルを解決し、--version が確認済み配布物と一致すれば完了です。別コピーなら削除前に PATH 順序か Python を直します。

PATH 修復、実際のアプリ名、pipx の三つの修復経路を示すオリジナル技術図。
オリジナルイラスト:証拠に合う修復だけを選択。 Watch at Ease