Gsutil: 通过 pip 更新后运行 gsutil 失败

创建于 2017-09-22  ·  5评论  ·  资料来源: GoogleCloudPlatform/gsutil

昨天我更新了 gsutil,从那以后它从命令行失败并显示以下堆栈跟踪:

$ gsutil
Traceback (most recent call last):
  File "/usr/local/bin/gsutil", line 11, in <module>
    load_entry_point('gsutil==4.27', 'console_scripts', 'gsutil')()
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 570, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2751, in load_entry_point
    return ep.load()
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2405, in load
    return self.resolve()
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2411, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  File "/usr/local/lib/python2.7/site-packages/gslib/__main__.py", line 51, in <module>
    from gslib import metrics
  File "/usr/local/lib/python2.7/site-packages/gslib/metrics.py", line 39, in <module>
    from gslib.util import CalculateThroughput
  File "/usr/local/lib/python2.7/site-packages/gslib/util.py", line 39, in <module>
    from apitools.base.py import http_wrapper
  File "/usr/local/lib/python2.7/site-packages/apitools/base/py/__init__.py", line 20, in <module>
    from apitools.base.py.base_api import *
  File "/usr/local/lib/python2.7/site-packages/apitools/base/py/base_api.py", line 31, in <module>
    from apitools.base.protorpclite import message_types
  File "/usr/local/lib/python2.7/site-packages/apitools/base/protorpclite/message_types.py", line 25, in <module>
    from apitools.base.protorpclite import messages
  File "/usr/local/lib/python2.7/site-packages/apitools/base/protorpclite/messages.py", line 1168, in <module>
    class Field(six.with_metaclass(_FieldMeta, object)):
TypeError: Error when calling the metaclass bases
    metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases

这是通过 pip 安装在 FreeBSD 11.1 上的。 它是通过 pip install --upgrade gsutil 升级的。

多年来,相同的设置一直运行良好。 (,我们不是在 FreeBSD 11.1 上,因为它已经好几年没有出来了,但是在同一个安装上)

我认为,这可能是导致问题的依赖项之一。

快到周末了,当然不用着急。 :微笑:

最有用的评论

顺便说一句,'google-apitools==0.5.15' 对此有一个修复......但 gsutil 被固定到 0.5.3 版。
或者,您需要引脚六封装。

所有5条评论

顺便说一句,'google-apitools==0.5.15' 对此有一个修复......但 gsutil 被固定到 0.5.3 版。
或者,您需要引脚六封装。

谢谢! 我将六个固定到以前的版本作为临时修复。

今天发布了 v4.28,它固定到apitools v0.5.16。 标记为固定。

谢谢!

对于有问题的其他人, pip install six==1.10.0是 6 的版本。 对于 Python2.7,我需要使用pip2 ,但这取决于您自己的 Python。 pippip3也可能有效。

此页面是否有帮助?
0 / 5 - 0 等级