gcloud-cliのインストールエラーの対処法
状況
Homebrew で gcloud-cli をインストールしようとしたら python3: command not found というエラーが出ました。何が起きていて、どう対応したのか記録に残します。
ERROR: (gcloud.config.virtualenv.create) /opt/homebrew/opt/python@3.13/libexec/bin/python3: command not found
A.
今回の問題は、Python 自体は正しくインストールされているのに、Homebrew の参照パスと gcloud の前提が噛み合っていなかったことが原因です。
まず、brew install --cask gcloud-cli 実行時に、gcloud のインストーラが内部で仮想環境を作成しようとして、次のパスにある Python を使おうとしていました。
/opt/homebrew/opt/python@3.13/libexec/bin/python3
しかしこのファイルは存在せず、
command not found エラーが発生しました。
一方で確認すると、Python 3.13 本体は以下の場所に正しくインストールされていました。
/opt/homebrew/Cellar/python@3.13/3.13.7/
ここから分かったのは、
- Python は存在する
- しかし Homebrew が用意する固定参照パス(opt)が壊れている、または中身が想定と違う
という状態でした。
そこでまず、壊れていた opt のシンボリックリンクを作り直しました。
brew unlink python@3.13
rm -rf /opt/homebrew/opt/python@3.13
brew link --overwrite --force python@3.13
これにより、
/opt/homebrew/opt/python@3.13
→ /opt/homebrew/Cellar/python@3.13/3.13.7
という正しいリンクが復活しました。
しかし、それでも gcloud は失敗しました。
理由は libexec/bin 配下に python はあるが python3 という名前のファイルが存在しなかったためです。
実際の状態は以下のようになっていました。
-
存在する
/opt/homebrew/opt/python@3.13/libexec/bin/python → python3.13 -
存在しない
/opt/homebrew/opt/python@3.13/libexec/bin/python3
一方、gcloud のインストーラは python3 という名前を固定で探しに行く実装になっているため、この「名前の不一致」が原因で失敗していました。
そこで最終的に、
ln -sfn python /opt/homebrew/opt/python@3.13/libexec/bin/python3
というシンボリックリンクを追加し、
- gcloud が期待する
python3 - 実体の
python3.13
を正しく結び付けました。
この状態であらためて
brew install --cask gcloud-cli
を実行すると、インストールは正常に完了しました。
まとめると
- 問題の本質は Python の未インストールではない
- Homebrew の opt パスと、gcloud の Python 前提(python3 という名前)がズレていた
- シンボリックリンクの修復と追加で解決した
という一連のトラブルでした。
0 likes