安装 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 版本。
您应该尝试使用
安装 pippython 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>=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