動かなくなったgcloudを蘇らせる方法


Elixirを使ったIoTプラットフォームのNervesの Advent Calendar #NervesJPでNervesととGCP Cloud PubSubを使ってLチカしてました。

久しぶりにGCPでPubSubの動作を確認しようとして、gcloudコマンドを実行すると以下のようなエラーが出て動かなくなってしまっていました。

fish
❯ gcloud -h
...いろいろエラーメッセージ...
AttributeError: module 'importlib' has no attribute 'util'

環境

  • macOS Catalina 10.15.7
  • brewを使ってPython等インストール

原因

gcloudコマンドがpython3.9に対応していないのと新しいバージョンなのでしばらく対応しない方針なので、brewでインストールしているpython3.9だとエラーが出てしまうようです。

対応

環境変数CLOUDSDK_PYTHONに問題ないバージョン(python3.9じゃないバージョン)のパスを渡してあげるとよいようです。今回はbrewでインストールしていたpython3.8を利用することにしました。

環境変数にパスを設定するとgcloudコマンドが使えるようになります。

fish
set -x CLOUDSDK_PYTHON /usr/local/Cellar/[email protected]/3.8.7/bin/python3

参考URL