#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
файл (или в оболочку, которую вы используете)