Python gsutil不再工作了?

Python gsutil不再工作了?,python,gcloud,gsutil,google-cloud-sdk,Python,Gcloud,Gsutil,Google Cloud Sdk,我已经使用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/bootstrappin

我已经使用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 回溯(最近一次呼叫最后一次): 文件“/Users/julian/googlecloudsdk/bin/bootstrapping/gsutil.py”,第12行,在 导入引导 文件“/Users/julian/googlecloudsdk/bin/bootstrapping/bootstrapping.py”,第22行,在 从googlecloudsdk.core.credentials导入存储为c_存储 文件“/Users/julian/googlecloudsdk/lib/googlecloudsdk/core/credentials/store.py”,第27行,在 从googlecloudsdk.core导入http 文件“/Users/julian/googlecloudsdk/lib/googlecloudsdk/core/http.py”,第31行,在 从googlecloudsdk.core.resource import session\u capturer 文件“/Users/julian/googlecloudsdk/lib/googlecloudsdk/core/resource/session_capturer.py”,第32行,在 从googlecloudsdk.core.resource导入yaml_打印机 文件“/Users/julian/googlecloudsdk/lib/googlecloudsdk/core/resource/yaml_printer.py”,第17行,在 从googlecloudsdk.core.resource导入资源\u打印机\u库 文件“/Users/julian/googlecloudsdk/lib/googlecloudsdk/core/resource/resource\u printer\u base.py”,第38行,在 从googlecloudsdk.core.resource导入资源 文件“/Users/julian/googlecloudsdk/lib/googlecloudsdk/core/resource/resource_projector.py”,第34行,在 从google.protobuf导入json_格式作为protobuf_编码 ImportError:无法导入名称json_格式
我尝试了gcloud更新和gcloud重新安装,但仍然遇到同样的问题。与python安装有冲突吗?还有其他想法吗?

当您安装了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的下一版本也应该有此修复。

您还可以通过更新到protobuf的最新版本来修复此错误。那么你就不必降级gcloud了

pip install protobuf --upgrade

我也有同样的问题。我用的是mac电脑。 查看/usr/local/lib/python2.7/site-packages,我发现了一个自制protobuf链接。 我用“rm homebrew protobuf.pth”删除了它
然后gsutil开始工作。

对于使用Google Cloud SDK rpm安装的CentOS 7.5(可能也更早),删除protobuf python包
yum-remove-protobuf-python
将解决这个问题。

我在Mac上通过更新protobuf的自制安装来解决这个问题:

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

请参见gsutil GitHub repo。

安装gcloud时使用的方法是什么?在
gcloud组件更新后,我按照说明进行了操作,该更新将我升级到
180.0.1
pip remove protobuf
无法识别的命令。我猜您的意思是
pip卸载protobuf
,但是这并没有解决问题。您第一次建议恢复到175.0.0版本确实有效-我的版本是179.0.0,所以我已经倒退了,这并不理想,但至少现在是一个解决办法。您还可以确认版本
175.0.0
修复了问题。在恢复之前,我在
180.0.1
中也看到了这个问题,只是尝试更新到v180.0.1,但遇到了同样的问题。恢复到175.0.0可以修复此问题@切尔巴:那么什么给了她?当你说云的下一个版本应该解决这个问题时,你是什么意思?你知道谷歌在做什么吗?或者你只是在猜测?这并没有解决我的问题。我仍然必须恢复到175.0.0。这在一开始对我不起作用。然而,我试着编辑googlecloudsdk/lib/googlecloudsdk/core/resource/resource_projector.py以查看该文件中的内容,并发现只需做一个微小的更改(例如添加一行新词)就足以让一切重新正常工作。我想这个系统需要一个轻推来使用新的protobuf?这对我来说很有效!谢谢D
mdfind-name homebrew protobuf.pth
在这里为我找到了它:
/usr/local/cillar/protobuf@2.6/2.6.1/lib/python2.7/site packages/homebrew protobuf.pth
在brew卸载后--强制protobuf
。。。。