Установка Gcloud sdk для Mac

#python #python-3.x #google-cloud-platform #gcloud

#python #python-3.x #google-облачная платформа #gcloud

Вопрос:

У меня возникла проблема с установкой gcloud sdk на мой Mac. У меня возникает следующая ошибка, когда я делаю ./install.sh . Источник: https://cloud.google.com/sdk/docs/quickstart

 Welcome to the Google Cloud SDK!
Traceback (most recent call last):
  File "/Users/kevin/Downloads/google-cloud-sdk/bin/bootstrapping/install.py", line 12, in <module>
    import bootstrapping
  File "/Users/kevin/Downloads/google-cloud-sdk/bin/bootstrapping/bootstrapping.py", line 32, in <module>
    import setup  # pylint:disable=g-import-not-at-top
  File "/Users/kevin/Downloads/google-cloud-sdk/bin/bootstrapping/setup.py", line 57, in <module>
    from googlecloudsdk.core.util import platforms
  File "/Users/kevin/Downloads/google-cloud-sdk/lib/googlecloudsdk/__init__.py", line 23, in <module>
    from googlecloudsdk.core.util import importing
  File "/Users/kevin/Downloads/google-cloud-sdk/lib/googlecloudsdk/core/util/importing.py", line 23, in <module>
    import imp
  File "/Users/kevin/.pyenv/versions/3.9.0/lib/python3.9/imp.py", line 23, in <module>
    from importlib import util
  File "/Users/kevin/.pyenv/versions/3.9.0/lib/python3.9/importlib/util.py", line 2, in <module>
    from . import abc
  File "/Users/kevin/.pyenv/versions/3.9.0/lib/python3.9/importlib/abc.py", line 17, in <module>
    from typing import Protocol, runtime_checkable
  File "/Users/kevin/.pyenv/versions/3.9.0/lib/python3.9/typing.py", line 26, in <module>
    import re as stdlib_re  # Avoid confusion with the re we export.
  File "/Users/kevin/.pyenv/versions/3.9.0/lib/python3.9/re.py", line 124, in <module>
    import enum
  File "/Users/kevin/Downloads/google-cloud-sdk/lib/third_party/enum/__init__.py", line 26, in <module>
    spec = importlib.util.find_spec('enum')
AttributeError: module 'importlib' has no attribute 'util'
  

И когда я делаю gcloud init

 Traceback (most recent call last):
  File "/Users/kevin/Downloads/google-cloud-sdk/lib/gcloud.py", line 104, in <module>
    main()
  File "/Users/kevin/Downloads/google-cloud-sdk/lib/gcloud.py", line 62, in main
    from googlecloudsdk.core.util import encoding
  File "/Users/kevin/Downloads/google-cloud-sdk/lib/googlecloudsdk/__init__.py", line 23, in <module>
    from googlecloudsdk.core.util import importing
  File "/Users/kevin/Downloads/google-cloud-sdk/lib/googlecloudsdk/core/util/importing.py", line 23, in <module>
    import imp
  File "/Users/kevin/.pyenv/versions/3.9.0/lib/python3.9/imp.py", line 23, in <module>
    from importlib import util
  File "/Users/kevin/.pyenv/versions/3.9.0/lib/python3.9/importlib/util.py", line 2, in <module>
    from . import abc
  File "/Users/kevin/.pyenv/versions/3.9.0/lib/python3.9/importlib/abc.py", line 17, in <module>
    from typing import Protocol, runtime_checkable
  File "/Users/kevin/.pyenv/versions/3.9.0/lib/python3.9/typing.py", line 26, in <module>
    import re as stdlib_re  # Avoid confusion with the re we export.
  File "/Users/kevin/.pyenv/versions/3.9.0/lib/python3.9/re.py", line 124, in <module>
    import enum
  File "/Users/kevin/Downloads/google-cloud-sdk/lib/third_party/enum/__init__.py", line 26, in <module>
    spec = importlib.util.find_spec('enum')
AttributeError: module 'importlib' has no attribute 'util'
  

Я думаю, что это проблема Python. но я использую Python3:

python -V Шоу

 Python 3.9.0
  

Я установил его с помощью homebrew.

В чем может быть проблема?

Комментарии:

1. Извините, у вас возникли проблемы! Это известная проблема, которая находится в процессе решения: b.corp.google.com/issues/170125513

Ответ №1:

Это известная проблема для Mac, Windows и Linux: https://issuetracker.google.com/170125513 .

Я бы посоветовал использовать рекомендуемые версии Python, упомянутые здесь (от 3.5 до 3.8).

Также это влияет не только на Cloud SDK, но и на другие (например, как указано здесь).

Ответ №2:

Спасибо за ваш ответ. Действительно, он работает с версией 3.8.6 python. Я добавлю некоторую информацию, если это может кому-то помочь. Чтобы управлять версией python, я использовал pyenv и установил нужную мне версию python.

 pyenv install 3.8.6
pyenv global 3.8.6
  

Комментарии:

1. Я перешел на более старый python3 с brew install python@3.8; brew unlink python3; brew link python@3.8

2. Спасибо за этот ответ.

Ответ №3:

Если вы хотите быстро исправить, вы можете добавить это в свой профиль bash и перезапустить свой терминал:

export CLOUDSDK_PYTHON=python3.8

Сработало для меня

Комментарии:

1. Это сработало и для меня, супер хороший ответ! Для таких пользователей Mac, как я: brew install python@3.8 и export CLOUDSDK_PYTHON=/usr/local/opt/python@3.8/bin/python3 неплохо добавить экспорт в ваш ~/.bash_profile файл (или в оболочку, которую вы используете)