macOS に Python を導入する手順をまとめます。macOS には標準で Python 3 が入っていますが、学習・分析には自前で別の Python を入れるのが基本 です。標準 Python はシステム用途に予約されており、pip install で気軽に汚すと OS 側のトラブル原因になりやすいためです。

本記事では「最短で動かす Homebrew」と、「複数バージョンを切り替えたい場合の pyenv」の 2 通りを示します。Apple Silicon(M シリーズ)特有の注意点もまとめます。

目次

  1. 方法 A. Homebrew で入れる(最短)
  2. 方法 B. pyenv で複数バージョンを管理する
  3. Apple Silicon で起きやすい注意点
  4. 動作テスト
  5. よくあるトラブルと対処

方法 A. Homebrew で入れる(最短)

Homebrew は macOS 用のパッケージマネージャです。最短で 3.12 を入れる方法は次の通りです。

Homebrew のインストール

未導入の場合、公式サイトの 1 行コマンドで導入します。

Terminal window
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

完了後、ターミナルを再起動してから次を確認します。

Terminal window
brew --version

Python 3.12 の導入

Terminal window
brew install python@3.12

インストール後、シェルから呼び出すパスを確認します。

Terminal window
which python3.12
python3.12 --version
/opt/homebrew/bin/python3.12
Python 3.12.5

Apple Silicon では /opt/homebrew/...、Intel Mac では /usr/local/... 配下が標準位置になります。

python コマンドのエイリアス

python だけで起動できるようにしたい場合は、シェル設定にエイリアスを足します(zsh の場合 ~/.zshrc)。

Terminal window
echo 'alias python=python3.12' >> ~/.zshrc
echo 'alias pip=pip3.12' >> ~/.zshrc
source ~/.zshrc

ただし、本サイトでは プロジェクトごとに venv を作る ことを推奨しています。エイリアスに頼るより、各プロジェクト内で python -m venv .venv を回すほうが事故が起きにくくなります。

方法 B. pyenv で複数バージョンを管理する

pyenv は Python のバージョンをプロジェクト単位で切り替えるためのツールです。3.10 と 3.12 を併用したい場合、機械学習で 3.11 が要求される場合などに便利です。

pyenv のインストール

Terminal window
brew install pyenv

シェル設定の追記

zsh を使っている前提で、~/.zshrc に次を追記します。

Terminal window
export PYENV_ROOT="$HOME/.pyenv"
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init - zsh)"

追記後はターミナルを再起動するか、source ~/.zshrc を実行します。

Python 本体の導入

導入可能なバージョンの確認とインストールは次のように行います。

Terminal window
pyenv install --list | grep "^ 3.12"
pyenv install 3.12.5
pyenv global 3.12.5

バージョンの確認は次の通りです。

Terminal window
python --version
# Python 3.12.5

pyenv local 3.12.5 をプロジェクトディレクトリで実行すると、そのフォルダ配下だけ別バージョンを使う、といった運用もできます。

Apple Silicon で起きやすい注意点

1. ネイティブ(arm64)と Rosetta(x86_64)の混在

ターミナル自体が Rosetta 経由で動いているケースがあります。確認は次のコマンドです。

Terminal window
uname -m

arm64 ならネイティブ、x86_64 なら Rosetta 経由です。後者でインストールすると Homebrew が /usr/local 配下に入り、Apple Silicon 用の /opt/homebrew 配下と混在します。Terminal.app「情報を見る」 で「Rosetta を使用して開く」のチェックが外れていることを確認します。

2. ライブラリのビルドエラー

科学計算系ライブラリ(NumPy / pandas / scikit-learn など)はホイール(事前ビルド済みファイル)が用意されているので、通常はそのまま pip install で動きます。古い記事で見かける「brew install openblas が必要」のような対処は、Python 3.12 + 最新 pip ではほぼ不要です。

3. pythonpython3 が指す先

macOS では python だけだと python3 と紐付かない場合があります。python3 または python3.12 を明示するか、venv 内で python を使う運用が安全です。

Terminal window
python3 --version
python3.12 --version

動作テスト

最後に簡単な動作確認をします。

Terminal window
python3.12 -c "print('Hello, pykabu')"
Hello, pykabu

仮想環境を作って pandas を入れるところまで通します。

Terminal window
mkdir pykabu-study && cd pykabu-study
python3.12 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install pandas
python -c "import pandas; print(pandas.__version__)"
2.2.3

よくあるトラブルと対処

症状原因対処
command not found: pythonエイリアス未設定python3 または python3.12 を使う、または ~/.zshrc にエイリアス追加
pyenv が反映されないeval "$(pyenv init - zsh)" の追記漏れ~/.zshrc を見直してターミナル再起動
pip が SSL エラープロキシ環境 / 証明書HTTPS_PROXY 環境変数を設定、または社内 IT に相談
ライブラリのビルド失敗アーキテクチャ混在uname -marm64 確認、Rosetta 起動を解除

まとめ

  • 学習用途なら Homebrew で 3.12 を入れる のが最短
  • 複数バージョンを使い分けたい場合は pyenv に切り替える
  • macOS 標準の /usr/bin/python3使わない(システム予約)
  • Apple Silicon では arm64 で動いていることを uname -m で確認する
  • グローバル環境を汚さないよう、プロジェクトごとに venv を作る運用を徹底する