我一直在使用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 update和gcloud重新安装,但仍然遇到同样的问题。是否与python安装有冲突?还有其他想法吗?
答案 0 :(得分:6)
您还可以通过更新到最新版本的protobuf来修复此错误。那你就不必降级gcloud了。
def has_cyrillic(text):
return bool(re.search('[\u0400-\u04FF]', text))
答案 1 :(得分:3)
如果安装了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应该有这个修复。
答案 2 :(得分:1)
我有同样的问题。我正在使用mac。 查看/usr/local/lib/python2.7/site-packages我发现了一个自制的protobuf链接。 我用" rm homebrew-protobuf.pth"删除了它。 然后gsutil开始工作。
答案 3 :(得分:0)
对于使用Google Cloud SDK rpm安装的CentOS 7.5(可能还更早),删除protobuf-python软件包yum remove protobuf-python
将解决此问题。
答案 4 :(得分:0)
我通过更新protobuf
的自制安装来在Mac上修复此问题:
$ brew upgrade protobuf
...
==> Upgrading 1 outdated package, with result:
protobuf 2.6.1 -> 3.6.0
...
请参阅gsutil GitHub存储库上的this issue。