«gcloud Storage cp t.txt gs://my.bucket.name/» выдает ошибку: ModuleNotFoundError: нет модуля с именем «google.auth»

Я пытаюсь загрузить файл в корзину, используя:

gcloud storage cp t.txt gs://my.bucket.name/

Но есть ошибка:

Copying file://t.txt to gs://adhoc.textra.me/t.txt
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/opt/homebrew/Cellar/[email protected]/3.12.3/Frameworks/Python.framework/Versions/3.12/lib/python3.12/multiprocessing/spawn.py", line 122, in spawn_main
    exitcode = _main(fd, parent_sentinel)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/homebrew/Cellar/[email protected]/3.12.3/Frameworks/Python.framework/Versions/3.12/lib/python3.12/multiprocessing/spawn.py", line 132, in _main
    self = reduction.pickle.load(from_parent)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/homebrew/share/google-cloud-sdk/lib/googlecloudsdk/command_lib/storage/tasks/task_graph_executor.py", line 37, in <module>
    from googlecloudsdk.command_lib.storage import encryption_util
  File "/opt/homebrew/share/google-cloud-sdk/lib/googlecloudsdk/command_lib/storage/encryption_util.py", line 28, in <module>
    from googlecloudsdk.command_lib.storage import hash_util
  File "/opt/homebrew/share/google-cloud-sdk/lib/googlecloudsdk/command_lib/storage/hash_util.py", line 25, in <module>
    from googlecloudsdk.command_lib.storage import fast_crc32c_util
  File "/opt/homebrew/share/google-cloud-sdk/lib/googlecloudsdk/command_lib/storage/fast_crc32c_util.py", line 32, in <module>
    from googlecloudsdk.command_lib import info_holder
  File "/opt/homebrew/share/google-cloud-sdk/lib/googlecloudsdk/command_lib/info_holder.py", line 45, in <module>
    from googlecloudsdk.core.credentials import store as c_store
  File "/opt/homebrew/share/google-cloud-sdk/lib/googlecloudsdk/core/credentials/store.py", line 34, in <module>
    from googlecloudsdk.api_lib.auth import external_account as auth_external_account
  File "/opt/homebrew/share/google-cloud-sdk/lib/googlecloudsdk/api_lib/auth/external_account.py", line 24, in <module>
    from googlecloudsdk.core.credentials import creds as c_creds
  File "/opt/homebrew/share/google-cloud-sdk/lib/googlecloudsdk/core/credentials/creds.py", line 33, in <module>
    from google.auth import compute_engine as google_auth_compute_engine
ModuleNotFoundError: No module named 'google.auth'
  Completed files 0/1 | 0B/16.5kiB

На этом этапе он зависает и не загружается.

Это на Macos с установленным через Brew google-cloud-sdk:

$ brew info google-cloud-sdk
==> google-cloud-sdk: 479.0.0 (auto_updates)
https://cloud.google.com/sdk/
Installed
/opt/homebrew/Caskroom/google-cloud-sdk/479.0.0 (132B)
From: https://github.com/Homebrew/homebrew-cask/blob/HEAD/Casks/g/google-cloud-sdk.rb
==> Name
Google Cloud SDK
==> Description
Set of tools to manage resources and applications hosted on Google Cloud
==> Artifacts
google-cloud-sdk/install.sh (Installer)
google-cloud-sdk/bin/gsutil (Binary)
google-cloud-sdk/completion.bash.inc -> /opt/homebrew/etc/bash_completion.d/google-cloud-sdk (Binary)
google-cloud-sdk/bin/bq (Binary)
google-cloud-sdk/bin/docker-credential-gcloud (Binary)
google-cloud-sdk/completion.zsh.inc -> /opt/homebrew/share/zsh/site-functions/_google_cloud_sdk (Binary)
google-cloud-sdk/bin/gcloud (Binary)
google-cloud-sdk/bin/git-credential-gcloud.sh -> git-credential-gcloud (Binary)
==> Caveats
To add gcloud components to your PATH, add this to your profile:

  for bash users
    source "$(brew --prefix)/share/google-cloud-sdk/path.bash.inc"

  for zsh users
    source "$(brew --prefix)/share/google-cloud-sdk/path.zsh.inc"
    source "$(brew --prefix)/share/google-cloud-sdk/completion.zsh.inc"

  for fish users
    source "$(brew --prefix)/share/google-cloud-sdk/path.fish.inc"

==> Analytics
install: 11,361 (30 days), 33,066 (90 days), 118,204 (365 days)

SDK обновлен до последней версии:

$
~/delicious/textra (git)  $ gcloud -v
Google Cloud SDK 487.0.0
beta 2024.08.06
bq 2.1.7
core 2024.08.06
gcloud-crc32c 1.0.0
gsutil 5.30

Загрузка с помощью gsutil работает нормально, но я хочу использовать gcloud compute cp ..., чтобы указать конфигурацию, например. gcloud --configuration=dev compute cp ....

Обновлено: я попробовал полностью удалить и удалить файлы конфигурации и переустановить, с тем же результатом.

Редактировать: оказывается, что отключение переменной среды CLOUDSDK_PYTHON_SITEPACKAGES устранило проблему!

Привет @Theo Lassonder Можете ли вы попробовать предложенные шаги здесь также проверьте другие предложения и дайте мне знать, если это поможет

Sathi Aiswarya 07.08.2024 12:39

@SathiAiswarya Я выполнил эти шаги и, к сожалению, получил тот же результат :-(

Theo Lassonder 08.08.2024 05:30

Можете ли вы попробовать переустановить SDK, убедитесь, что все зависимости установлены?

Sathi Aiswarya 08.08.2024 10:18

@SathiAiswarya Я попробовал полностью удалить SDK, удалить файлы конфигурации и переустановить. Тот же результат :-(

Theo Lassonder 09.08.2024 04:44
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
4
89
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Сначала проверьте свой .bash_profile, чтобы убедиться, что нет ничего, что могло бы помешать каким-либо переменным CLOUDSDK_PYTHON.

Если нет, вам также следует проверить это:

Ваша команда brew info google-cloud-sdk возвращает предупреждение:

==> Caveats
To add gcloud components to your PATH, add this to your profile:

  for bash users
    source "$(brew --prefix)/share/google-cloud-sdk/path.bash.inc"

  for zsh users
    source "$(brew --prefix)/share/google-cloud-sdk/path.zsh.inc"
    source "$(brew --prefix)/share/google-cloud-sdk/completion.zsh.inc"

  for fish users
    source "$(brew --prefix)/share/google-cloud-sdk/path.fish.inc"

Вам следует запустить тот, который соответствует вашей оболочке, и добавить его в свой профиль bash, как уже упоминалось.

Если не помогло, попробуйте: gcloud components reinstall

Если это по-прежнему не работает, вы можете проверить Python, используемый gcloud, используя: gcloud info --format='value(basic.python_location)'

Возьмите обратный путь, замените python на pip и добавьте install google-auth, затем запустите команду. Для установки будет использоваться правильный Python/Pip google.auth.

В крайнем случае рассмотрите возможность переустановки gcloud, следуя инструкциям GCP.

Спасибо Лео. Поиск источников для bash (оболочки, которую я использую) не имел никакого значения. Переустановка компонентов gcloud не изменила ситуацию. Ваше предложение установить модуль Python google.auth привело к следующему: ``` error: external-managed-environment × Эта среда управляется извне ╰─> Чтобы установить пакеты Python в масштабе всей системы, попробуйте Brew install xyz, где xyz — это пакет, которым вы являетесь. пытаюсь установить. ``` Я пытался установить различные рецепты Homebrew, связанные с аутентификацией и Google, но безрезультатно.

Theo Lassonder 11.08.2024 04:11

Если вы выполните простую команду pip freeze на своем терминале, увидите ли вы необходимый пакет? И еще, какова ценность вашего CLOUDSDK_PYTHON? Я бы еще попробовал переустановить без варки, по инструкции GCP

Leo K. 11.08.2024 06:28

Лео, спасибо, что заставил меня переустановить без Brew, что заставило меня заглянуть в .bash_profile, где я нашел переменную среды, о которой я забыл, и установить ее так: # See https://cloud.google.com/iap/docs/using-tcp-forwarding#incre‌​asing_the_tcp_upload‌​_bandwidth export CLOUDSDK_PYTHON_SITEPACKAGES=1 Сброс этой переменной среды заставил ее работать как положено. Не знаю почему. Не могли бы вы обновить свой ответ, и я вручу вам бонус?

Theo Lassonder 11.08.2024 08:13

Какая хорошая новость, я соответственно обновил свой ответ

Leo K. 11.08.2024 11:10

Другие вопросы по теме