安装 EB CLI 3.0 后出现 Python DistributionNotFound 错误

Posted

技术标签:

【中文标题】安装 EB CLI 3.0 后出现 Python DistributionNotFound 错误【英文标题】:Python DistributionNotFound Error after installing EB CLI 3.0 【发布时间】:2015-05-17 02:24:05 【问题描述】:

尝试了很多东西,但在多次尝试更新 python、pip 等后仍然出现此错误。我在运行 10.9.5 的 OS X 上。

CMD% eb 

Traceback (most recent call last):
  File "/usr/local/bin/eb", line 5, in <module>
    from pkg_resources import load_entry_point
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 2603, in <module>
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 666, in require
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 565, in resolve
pkg_resources.DistributionNotFound: python-dateutil>=2.1,<3.0.0

【问题讨论】:

没有一个解决方案对我有用,而且我遇到了同样的错误。奇怪。 【参考方案1】:

我在尝试运行 eb 时遇到了类似的错误,但不是针对 dateutil...

Traceback (most recent call last):   
  File "/usr/local/bin/eb", line 5, in <module>
    from pkg_resources import load_entry_point   
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 2603, in <module>
    working_set.require(__requires__)   
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 666, in require
    needed = self.resolve(parse_requirements(requirements))   
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 565, in resolve
    raise DistributionNotFound(req)  # XXX put more info here
pkg_resources.DistributionNotFound: requests>=2.6.1,<2.7

对我来说,解决方案是更新 setuptools:

sudo pip install --upgrade setuptools

希望对某人有所帮助。

【讨论】:

这可以解决 Ubuntu 12.04 中的问题,而 Mac OS 上的相同设置可以正常工作。它将 setuptools 从 0.6rc11 升级到 18.2。【参考方案2】:

使用以下命令:

pip install awsebcli

它会自动升级awsebcli的所有依赖。

【讨论】:

在我更新了类似 sudo pip install awsebcli 之类的命令后,这在 mac osx 中对我有用【参考方案3】:

使用以下命令

sudo pip install python-dateutil

升级

【讨论】:

这个对我有用。如果其他人没有,请尝试一下。【参考方案4】:

Pip 可能链接到与标准不同的 python 版本。

您应该尝试使用

安装 pip
python get-pip.py

(您可以从 pip 网站下载 get-pip.py)

否则,您也可以看到所有内容都链接到了哪个 Python。

which python

head -1 $(which eb)

head -1 $(which pip)

您可以在 eb 脚本中更改为 shebang 行以匹配 pip,它应该都可以工作。

您也可以使用virtualenv 进行安装(pythons 推荐的安装方式)

virtualenv ~/ebenv
source ~/ebenv/bin/activate
pip install awsebcli
deactivate
sudo ln -s ~/ebenv/bin/eb /usr/local/bin/

【讨论】:

【参考方案5】:

在我的 mac osx 10.10 上,我必须重新安装。

sudo pip install python-dateutil

以防万一有人遇到这种类型的错误。检查跟踪中的最后一段以了解它所引发的错误类型。就我而言,这是:

 raise VersionConflict(dist, req).with_context(dependent_req)
pkg_resources.ContextualVersionConflict: (six 1.4.1
(/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python),
Requirement.parse('six>=1.5'), set(['python-dateutil']))

【讨论】:

【参考方案6】:

我遇到了完全相同的问题,对我来说,eb 脚本使用了错误的 python。为了解决它,我刚刚修改了 eb 脚本:

> which eb
/usr/local/bin/eb
> sudo vim /usr/local/bin/eb
## Change the first line from '#!/usr/bin/python' to '#!/usr/local/bin/python'

重启终端后,一切正常。

【讨论】:

【参考方案7】:

从您的日志中出现的错误来看,它需要python-dateutil&gt;=2.1。 因此,您需要确保安装了该版本,如果没有安装它。我有类似的问题,解决方案(在我的情况下)是:

 $ pip install --ignore-installed python-dateutil==2.2

【讨论】:

以上是关于安装 EB CLI 3.0 后出现 Python DistributionNotFound 错误的主要内容,如果未能解决你的问题,请参考以下文章

AWS EB CLI 安装失败,“python setup.py egg_info”失败,错误代码为 1”

安装 eb cli 时出现问题,ZipImportError

vue-cli3.0 搭建项目

使用 vue-cli 3.0 创建项目

如何使用 EB cli 查看我的 EB ec2 的 python 日志

vue-cli 3.x 与vue-cli 2.x构建项目的区别