zsh: command not found: python エラーの解決方法 (macOS Monterey)
問題の概要
macOS Monterey 12.3以降のアップデート後、Pythonの実行時に zsh: command not found: python
エラーが発生する問題が報告されています。これは主に以下の環境で発生します:
- macOS Monterey 12.3以降
- Python 3.x
- Atomエディタとatom-python-runパッケージ
- zshシェル環境
重要な背景
AppleはmacOS Monterey 12.3でシステムにプリインストールされていたPython 2.7を削除しました。これにより、以前は python
コマンドで実行できていたスクリプトやツールが機能しなくなりました。
根本原因
このエラーの主な原因は、以下の2点です:
- Python 2.7の削除: macOSからシステムのPython 2.7が完全に削除された
- コマンド名の不一致: 多くのスクリプトやツールが
python
コマンドを呼び出すが、現在のPython 3はpython3
としてインストールされる
解決方法
以下の解決策からお使いの環境に合った方法を選択してください。
方法1: エイリアスの設定 (推奨)
最も簡単で安全な方法は、.zshrc
ファイルにエイリアスを追加することです。
# 現在のPython 3のパスを確認
which python3
# エイリアスを追加
echo "alias python=/usr/bin/python3" >> ~/.zshrc
# 変更を適用
source ~/.zshrc
パスの確認
システムによってPython 3のパスが異なる場合があります。以下のコマンドで正確なパスを確認してください:
which python3
方法2: Homebrewを使用したPythonのインストール
Homebrewを使用してPythonを管理する方法です。
# HomebrewでPythonをインストール
brew install python
# シンボリックリンクを作成
sudo ln -s /usr/bin/python3 /usr/local/bin/python
方法3: pyenvによるPythonバージョン管理
複数のPythonバージョンを使い分けたい場合はpyenvが便利です。
# pyenvをインストール
brew install pyenv
# 依存関係のインストール
brew install openssl readline sqlite3 xz zlib tcl-tk
# 利用可能なバージョンを確認
pyenv install --list
# Python 3.10.6をインストール
pyenv install 3.10.6
# グローバルバージョンを設定
pyenv global 3.10.6
# pyenvをシェルに統合
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc
方法4: python3コマンドの直接使用
一時的な解決策として、すべてのPythonコマンドを python3
に置き換える方法もあります。
# 従来のpythonコマンドの代わりに使用
python3 --version
python3 script.py
Atomエディタでの設定
atom-python-runパッケージを使用している場合、パッケージ設定でPythonの実行パスを明示的に指定する必要があります。
- Atom → Preferences → Packages → atom-python-run → Settings
- "Command to run python" を
python3
に変更 - "Command to run python with arguments" を
python3 -u
に変更
トラブルシューティング
パスの確認
Pythonが正しくインストールされているか確認するには:
# Python 3の場所を確認
which python3
# バージョンを確認
python3 --version
# パス環境変数を確認
echo $PATH
インストールの確認
Pythonが正しくインストールされているか確認:
# Homebrew経由でインストールした場合
brew list python
# 公式インストーラーを使用した場合
ls /Applications/Python*
注意点
システムPythonの置き換えは避ける
システムの /usr/bin/python
を直接変更するのは避けましょう。他のシステムツールが影響を受ける可能性があります。
永続的な解決策
エイリアスの設定やpyenvの使用は、再起動後も設定が保持される永続的な解決策です。
まとめ
macOS Montereyでの zsh: command not found: python
エラーは、以下のいずれかの方法で解決できます:
- エイリアスの設定 - 最も簡単で安全
- pyenvの使用 - 複数バージョンの管理に便利
- 明示的なpython3コマンドの使用 - 一時的な解決策
おすすめは方法1のエイリアス設定で、これにより既存のスクリプトやツールを変更することなくPython 3を使用できます。