久々に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です。