pip install したのに import できないときは type -a python3 で「どの python3 か」を確かめる
pip が入れた先の Python と、実際に動いている python3 が別物、というのがよくある原因。type -a python3 で候補をすべて表示し、インストールは python3 -m pip で行う。
確かめ方
bash
type -a python3 # PATH 上の python3 を優先順にすべて表示
type -a pip pip3 # pip がどの Python に属しているか
python3 -c 'import sys; print(sys.executable)' # 実際に動いている本体
python3 -m pip --version # その python3 の pip と入れ先Homebrew・pyenv・mise・uv・システムの /usr/bin/python3 が混ざっていると、pip は A に、python3 は B に、という状態になりやすい。
直し方
- インストールは常に
python3 -m pip install <pkg>と書く。今動いているpython3と同じ環境に入る。 - プロジェクトでは仮想環境を使う(
python3 -m venv .venv && . .venv/bin/activate、またはuv venv)。 - シェルが古いパスを覚えていることがあるので、PATH を変えた後は
hash -r(zsh はrehash)。
注意点
- エディタ(VS Code など)は別のインタプリタを選んでいることがある。エディタ側のインタプリタ選択も確認する。
- システムの Python に
sudo pipで入れるのは避ける。新しい Debian/Ubuntu や Homebrew の Python では PEP 668 によりエラーになる(externally-managed-environment)。