@ktdatascience

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

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

No Answers yet.

Your answer might help someone💌