gsutil больше не работает?

Некоторое время я использовал gcloud и gsutil, но теперь внезапно для любой команды gsutil, которую я запускаю, я получаю ошибки:

Traceback (most recent call last):
  File "/Users/julian/google-cloud-sdk/bin/bootstrapping/gsutil.py", line 12, in 
    import bootstrapping
  File "/Users/julian/google-cloud-sdk/bin/bootstrapping/bootstrapping.py", line 22, in 
    from googlecloudsdk.core.credentials import store as c_store
  File "/Users/julian/google-cloud-sdk/lib/googlecloudsdk/core/credentials/store.py", line 27, in 
    from googlecloudsdk.core import http
  File "/Users/julian/google-cloud-sdk/lib/googlecloudsdk/core/http.py", line 31, in 
    from googlecloudsdk.core.resource import session_capturer
  File "/Users/julian/google-cloud-sdk/lib/googlecloudsdk/core/resource/session_capturer.py", line 32, in 
    from googlecloudsdk.core.resource import yaml_printer
  File "/Users/julian/google-cloud-sdk/lib/googlecloudsdk/core/resource/yaml_printer.py", line 17, in 
    from googlecloudsdk.core.resource import resource_printer_base
  File "/Users/julian/google-cloud-sdk/lib/googlecloudsdk/core/resource/resource_printer_base.py", line 38, in 
    from googlecloudsdk.core.resource import resource_projector
  File "/Users/julian/google-cloud-sdk/lib/googlecloudsdk/core/resource/resource_projector.py", line 34, in 
    from google.protobuf import json_format as protobuf_encoding
ImportError: cannot import name json_format

Я попробовал обновить gcloud и переустановить gcloud, но проблема все равно возникла. Есть ли конфликт с установкой python? Есть другие идеи?


person julian    schedule 09.11.2017    source источник
comment
Какой метод вы используете для установки gcloud?   -  person Rodney Jonace    schedule 09.11.2017
comment
Я выполнил инструкции на странице cloud.google.com/storage/docs/gsutil_install.   -  person julian    schedule 10.11.2017
comment
Это также случилось со мной после gcloud components update, который толкнул меня на 180.0.1   -  person migreva    schedule 22.11.2017


Ответы (5)


Вы также можете исправить эту ошибку, обновив protobuf до последней версии. Тогда вам не нужно переходить на более раннюю версию gcloud.

pip install protobuf --upgrade
person Stephen H    schedule 14.01.2018
comment
Для меня это не решило проблемы. Мне все равно пришлось вернуться на 175.0.0. - person febeling; 20.02.2018
comment
Сначала это не сработало для меня. Однако я попытался отредактировать google-cloud-sdk / lib / googlecloudsdk / core / resource / resource_projector.py, чтобы увидеть, что происходит в этом файле, и обнаружил, что внесения лишь крошечных изменений (например, добавления новой строки) было достаточно, чтобы сделать все снова работает. Полагаю, системе нужно подтолкнуть, чтобы использовать новый protobuf? - person julian; 22.03.2018

Проблема возникает, когда у вас установлен пакет google protobuf.

Вы можете обойти проблему, используя старую версию, запустив

gcloud components update --version 175.0.0

или удалив пакет google protobuf из установки python.

pip remove protobuf

Если вы не хотите делать что-либо из этого, они могут установить отдельную версию 2.7 python (без protobuf) и установить CLOUDSDK_PYTHON = / path / to / переменной среды python.

Это исправление также должно быть в следующем выпуске облачного SDK.

person cherba    schedule 10.11.2017
comment
pip remove protobuf не распознанная команда. Я предполагаю, что вы имеете в виду pip uninstall protobuf, однако это не устранило проблему. ваше первое предложение о возврате к версии 175.0.0 действительно работает - моя версия была 179.0.0, поэтому я пошел назад, поэтому не идеально, но, по крайней мере, на данный момент это обходной путь. - person julian; 10.11.2017
comment
Также можно подтвердить, что версия 175.0.0 устраняет проблему. Я также видел эту проблему в 180.0.1 перед возвратом - person migreva; 22.11.2017
comment
Просто попытался обновить до версии 180.0.1, но возникла такая же проблема. Возврат к 175.0.0 устраняет проблему. @cherba Так что это дает? Когда вы сказали, что следующая версия облака должна решить эту проблему, что вы имели в виду? Вы что-нибудь знаете о том, что происходит в Google? Или вы просто догадывались? - person julian; 22.11.2017

Я была такая же проблема. Я использую Mac. Заглянув в /usr/local/lib/python2.7/site-packages, я нашел ссылку homebrew protobuf. Я удалил его с помощью "rm homebrew-protobuf.pth". Затем gsutil начал работать.

person alunarbeach    schedule 17.04.2018
comment
Это сработало для меня! Спасибо! : D mdfind -name homebrew-protobuf.pth нашел это для меня: /usr/local/Cellar/[email protected]/2.6.1/lib/python2.7/site-packages/homebrew-protobuf.pth после _3 _.... - person Kaolin Fire; 02.05.2019

Для CentOS 7.5 (возможно, и более ранней версии) с использованием rpm-установки Google Cloud SDK удаление пакета protobuf-python yum remove protobuf-python решит эту проблему.

person John Hanks    schedule 14.07.2018

Я исправил это на своем Mac, обновив домашнюю установку protobuf:

$ brew upgrade protobuf
...
==> Upgrading 1 outdated package, with result:
protobuf 2.6.1 -> 3.6.0
...

См. эту проблему в репозитории gsutil GitHub.

person danvk    schedule 05.09.2018