gcloud components updateを実行したらPythonエラーが出たので対応しました

この記事は約4分で読めます。

久々にgcloud components updateを実行したらコンソールで下記お叱りのメッセージが出力されました。

ERROR: gcloud failed to load: dlopen(/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/lib-dynload/_ssl.cpython-36m-darwin.so, 2): Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
  Referenced from: /usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/lib-dynload/_ssl.cpython-36m-darwin.so
  Reason: image not found
    gcloud_main = _import_gcloud_main()
    import googlecloudsdk.gcloud_main
    from googlecloudsdk.api_lib.iamcredentials import util as iamcred_util
    from googlecloudsdk.api_lib.util import apis_internal
    from googlecloudsdk.core import properties
    from googlecloudsdk.core import config
    from oauth2client import client
    from oauth2client import transport
    import httplib2
    from httplib2.python3.httplib2 import *
    import ssl
    import _ssl             # if we can't import it, let the error propagate
  Referenced from: /usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/lib-dynload/_ssl.cpython-36m-darwin.so

This usually indicates corruption in your gcloud installation or problems with your Python interpreter.

Please verify that the following is the path to a working Python 2.7 or 3.5+ executable:
    /usr/local/bin/python3

If it is not, please set the CLOUDSDK_PYTHON environment variable to point to a working Python 2.7 or 3.5+ executable.

If you are still experiencing problems, please reinstall the Cloud SDK using the instructions here:
    https://cloud.google.com/sdk/

原因がよく分かりませんがPython3.xの参照がおかしくなったようです。

細かく調べると時間がかかるのでPythonの入替えで対応することにしました。

なお、私の環境のPythonはhomebrewでインストールしていたため、brewコマンドで対応します。

スポンサーリンク

事前準備

とりあえずhomebrewをアップデートしておきます。

brew update
スポンサーリンク

Pythonのアンインストール

以下のコマンドでアンインストールを実行します。

brew uninstall --force python3

状況によってはこちらのコマンドをhomebrewから指示されるかもしれません。

brew uninstall --ignore-dependencies python3
スポンサーリンク

Pythonのインストール

brew install python
スポンサーリンク

動作確認

Pythonのインストールが終わったら下記コマンドで動作確認を実行します。

gcloud components list

gcloudコマンドが通れば、コンポーネントのリストが出力されます。

あとは、

gcloud components update

を実行し、コンポーネントを最新化すればOKです。