macOS に Homebrew で Python 3.11 を入れたのに、
python --version が 3.9.6 のままで困りました。
この記事では、その原因と「初心者でも安全に解決する方法」を解説します。
コマンドをそのまま実行すれば解決できる内容です。
はじめに
macOS に Homebrew を使って Python 3.11 をインストールしたのに、次のような状況で古いVersionのままでハマりました。
1) python 3.11 インストール
$ brew install python@3.11
2) python Version 確認
Versionは、古い3.9.6のまま。。。
$ python --version
Python 3.9.6
% which python3
/usr/bin/python3
3) python 3.11 インストール確認
/opt/homebrew/bin/にpython 3.11にインストールされてる
% ls -l /opt/homebrew/bin/python3.11
lrwxr-xr-x 1 shirok admin 46 Jan 25 16:38 /opt/homebrew/bin/python3.11 -> ../Cellar/python@3.11/3.11.14_2/bin/python3.11
「Python 3.11 は入っているのに、なぜ Python 3.9 が使われているのか?」
- なぜこの問題が起きるのか
- どうやって確認すればいいのか
- 正しい解決方法は何か
を順番に解説します。
結論(最初に)
Python 3.11 は正しくインストールされているが、python コマンドが別の Python(3.9)を参照しているだけです。
macOS では
👉 「インストールされている Python」と「実際に使われる Python」は別物
になることがよくあります。
なぜこんなことが起きるのか?
macOS には複数の Python が同時に存在できる
macOS では、次のように 複数の Python が共存できます。
- macOS に最初から入っている Python
- Homebrew でインストールした Python
- 過去に別の方法で入れた Python
- 仮想環境(venv)用の Python
そのため、単に Python をインストールしただけでは
「どの Python が使われるか」は決まりません。
python コマンドの正体
ターミナルで実行している
python
や
python3
は、PATH(環境変数)に登録されている順番で Python を探しています。
つまり:
先に見つかった Python が使われる
という仕組みです。
今回の状況を整理
今回の環境では以下のようになっていました。
- Python 3.11
👉/opt/homebrew/bin/python3.11に存在(Homebrew) -
pythonコマンド
👉 PATH の都合で Python 3.9.6 を参照
結果として、
Python 3.11 は「存在する」
でもpythonでは「使われていない」
という状態になります。
現在の状況を確認する方法
① 今使われている Python を確認
python --version
Python 3.9.6
この表示が出ていれば、今は Python 3.9 が使われています。
② Python 3.11 がどこにあるか確認
which python3.11
/opt/homebrew/bin/python3.11
これが表示されれば、Python 3.11 は正しくインストール済みです。
「じゃあどうすればいいのか?」
一番おすすめの解決策:仮想環境(venv)を使う
macOS では、Python の切り替えは仮想環境(venv)で行うのが正解です。
理由は:
- システム Python を壊さない
- プロジェクトごとに Python バージョンを固定できる
- pip で入れたライブラリが混ざらない
初心者ほど venv を使った方が安全です。
Python 3.11 で仮想環境を作成する
① Python 3.11 を指定して venv を作る
/opt/homebrew/bin/python3.11 -m venv venv
-
-m venv:仮想環境を作成 -
venv:仮想環境のディレクトリ名(名前は何でもOK)
② 仮想環境を有効化する
source venv/bin/activate
有効化されると、ターミナルの表示が変わります。
(venv) $
③ Python のバージョンを確認
python --version
Python 3.11.x
👉 ここで 3.11 になっていれば成功
pip install が失敗していた理由
Python 3.9 を使っていると、次のようなエラーが出ることがあります。
Requires-Python >=3.10
No matching distribution found
これは、
「このライブラリは Python 3.10 以上でしか使えません」
という意味です。
Python 3.11 の仮想環境を使えば、問題なくインストールできます。
正しいライブラリのインストール方法
仮想環境を有効化した状態で、必ずこの形で実行します。
python -m pip install -r requirements.txt
ポイント:
-
pipではなくpython -m pip - 今使っている Python に紐づいた pip が使われる
よくある失敗例
❌ 仮想環境を有効化せずに実行
pip install -r requirements.txt
→ システム Python にインストールされる
→ バージョン不整合でハマる
まとめ
- Python 3.11 は「入れただけ」では使われない
- macOS では複数の Python が共存するのが普通
-
pythonコマンドは PATH に依存する - Python 3.11 + venv が最も安全で確実
- pip は「今使っている Python」に紐づく
おわりに
この問題は macOS + Python 初心者が必ず一度はハマるポイントです。
逆に言えば、ここを理解できると Python 環境構築が一気に楽になります。
同じことで困っている人の助けになれば幸いです。
■ 参考
-
Homebrew
・Python — Homebrew Documentation -
Python Documentation
・ Python Documentation contents
・ venv --- 仮想環境の作成
・ 仮想環境とパッケージ -
Python WebAcademy
・ Python WebAcademy
・ Pythonのpipとは?Pythonのライブラリを管理するコマンド