为什么AWS CLI pip package installation安装了一个它不能使用的六包?

Why does the AWS CLI pip package installation install a six package it can't use?

每当我用

更新我的 AWS CLI 时
pip install -U awscli

它降级了几个包(coloramadillrsawebsocket-client)并将 six 升级到一个版本 (1.9.0)它不能使用。更新后,如果我尝试使用 AWS CLI,(例如 eb status)我会得到

Traceback (most recent call last):
  File "/usr/local/bin/eb", line 5, in <module>
    from pkg_resources import load_entry_point
  File "/Library/Python/2.7/site-packages/pkg_resources/__init__.py", line 3018, in <module>
    working_set = WorkingSet._build_master()
  File "/Library/Python/2.7/site-packages/pkg_resources/__init__.py", line 614, in _build_master
    return cls._build_from_requirements(__requires__)
  File "/Library/Python/2.7/site-packages/pkg_resources/__init__.py", line 627, in _build_from_requirements
    dists = ws.resolve(reqs, Environment())
  File "/Library/Python/2.7/site-packages/pkg_resources/__init__.py", line 805, in resolve
    raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: six==1.8.0

为了让 AWS CLI 再次工作,我必须将 six 降级到 1.8.0(其他包可以再次升级到当前版本而不会产生不良影响)。但是 awscli 的下一次更新(在过去六次左右)总是将当前的 - 但 AWS CLI 无法使用 - 重新带回来。

这是怎么回事? awscli 包中有错误吗?其他人有过这种经历吗?

这实际上是 awsebcli 包的安装脚本中的一个错误 now been fixed

您可以在用户数据脚本中使用以下技巧来避免这种情况。

pip install six==1.8.0
pip install awscli

此致。

如果您安装了 Python 3,请使用

pip3 install awscli