gsutil 不再有效?
Posted
技术标签:
【中文标题】gsutil 不再有效?【英文标题】:gsutil no longer works? 【发布时间】:2018-04-22 08:59:45 【问题描述】:我使用 gcloud 和 gsutil 已经有一段时间了,但现在突然对于我运行的任何 gsutil 命令都会出错:
Traceback(最近一次调用最后一次): 文件“/Users/julian/google-cloud-sdk/bin/bootstrapping/gsutil.py”,第 12 行,在 导入引导 文件“/Users/julian/google-cloud-sdk/bin/bootstrapping/bootstrapping.py”,第 22 行,在 从 googlecloudsdk.core.credentials 导入存储为 c_store 文件“/Users/julian/google-cloud-sdk/lib/googlecloudsdk/core/credentials/store.py”,第 27 行,在 从 googlecloudsdk.core 导入 http 文件“/Users/julian/google-cloud-sdk/lib/googlecloudsdk/core/http.py”,第 31 行,在 从 googlecloudsdk.core.resource 导入 session_capturer 文件“/Users/julian/google-cloud-sdk/lib/googlecloudsdk/core/resource/session_capturer.py”,第 32 行,在 从 googlecloudsdk.core.resource 导入 yaml_printer 文件“/Users/julian/google-cloud-sdk/lib/googlecloudsdk/core/resource/yaml_printer.py”,第 17 行,在 从 googlecloudsdk.core.resource 导入 resource_printer_base 文件“/Users/julian/google-cloud-sdk/lib/googlecloudsdk/core/resource/resource_printer_base.py”,第 38 行,在 从 googlecloudsdk.core.resource 导入 resource_projector 文件“/Users/julian/google-cloud-sdk/lib/googlecloudsdk/core/resource/resource_projector.py”,第 34 行,在 从 google.protobuf 导入 json_format 作为 protobuf_encoding ImportError:无法导入名称 json_format
我尝试了 gcloud update 和 gcloud reinstall 但仍然遇到同样的问题。与python安装有冲突吗?还有其他想法吗?
【问题讨论】:
你用什么方法安装gcloud? 我按照cloud.google.com/storage/docs/gsutil_install的说明进行操作 在gcloud components update
将我撞到180.0.1
之后,这也发生在我身上
【参考方案1】:
当您安装了 google protobuf 包时会出现此问题。
您可以通过运行使用旧版本来解决此问题
gcloud components update --version 175.0.0
或者通过删除 google protobuf 包来安装 python。
pip remove protobuf
如果您不想执行其中任何一项,他们可以安装单独版本的 2.7 python(不带 protobuf)并设置 CLOUDSDK_PYTHON=/path/to/python 环境变量。
Cloud sdk 的下一个版本也应该有这个修复。
【讨论】:
pip remove protobuf
不是一个可识别的命令。我假设您的意思是 pip uninstall protobuf
但这并没有没有解决问题。您恢复到版本 175.0.0 的第一个建议确实有效 - 我的版本是 179.0.0,所以我倒退了所以不理想,但至少现在是一种解决方法。
还可以确认版本175.0.0
修复了该问题。在恢复之前,我也在180.0.1
中看到了这个问题
刚刚尝试更新到 v 180.0.1 但遇到同样的问题。恢复到 175.0.0 可以解决此问题。 @cherba那么什么给了?当您说云的下一个版本应该解决这个问题时,您是什么意思?您对 Google 发生的事情有所了解吗?还是你只是在猜测?【参考方案2】:
您也可以通过更新到最新版本的 protobuf 来修复此错误。这样您就不必降级 gcloud。
pip install protobuf --upgrade
【讨论】:
这并没有解决我的问题。我仍然必须恢复到 175.0.0。 这最初对我不起作用。但是,我尝试编辑 google-cloud-sdk/lib/googlecloudsdk/core/resource/resource_projector.py 以查看该文件中的内容,并发现只需进行微小的更改(例如添加新行)就足以使一切都恢复正常。我猜系统需要轻推才能使用新的 protobuf?【参考方案3】:我有同样的问题。我正在使用Mac。 查看 /usr/local/lib/python2.7/site-packages 我发现了一个自制的 protobuf 链接。 我用“rm homebrew-protobuf.pth”删除了它 然后 gsutil 开始工作了。
【讨论】:
这对我有用!谢谢! :Dmdfind -name homebrew-protobuf.pth
在这里为我找到了它:/usr/local/Cellar/protobuf@2.6/2.6.1/lib/python2.7/site-packages/homebrew-protobuf.pth
在 brew uninstall --force protobuf
.... 之后【参考方案4】:
对于使用 Google Cloud SDK rpm 安装的 CentOS 7.5(可能更早),删除 protobuf-python 包 yum remove protobuf-python
将解决此问题。
【讨论】:
【参考方案5】:我通过更新 protobuf
的自制软件安装在我的 Mac 上解决了这个问题:
$ brew upgrade protobuf
...
==> Upgrading 1 outdated package, with result:
protobuf 2.6.1 -> 3.6.0
...
请参阅 gsutil GitHub 存储库上的 this issue。
【讨论】:
以上是关于gsutil 不再有效?的主要内容,如果未能解决你的问题,请参考以下文章
ORA-00980: 同义词翻译不再有效 00980. 00000 - “同义词翻译不再有效”