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

10

尝试了很多方法,但在多次尝试更新Python、pip等后仍然出现这个错误。我的操作系统是OS X 10.9.5。

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

没有一个解决方案适用于我,而且我还是遇到了同样的错误。很奇怪。 - Costa Michailidis
7个回答

22

我在尝试运行 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

希望这能帮助到某些人。


1
这在Ubuntu 12.04上解决了问题,而在Mac OS上相同的设置是有效的。它将setuptools从0.6rc11升级到18.2。 - Sebastian Cruz

13

使用以下命令:

pip install awsebcli

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


1
在我更新命令,像sudo pip install awsebcli之后,这在我的mac osx上运行良好。 - maniempire

7
使用以下命令:
sudo pip install python-dateutil

升级它


这个对我有效。如果其他方法不行,可以试试这个。 - Lukas

2

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 进行安装(这是 Python 推荐的安装方式)。
virtualenv ~/ebenv
source ~/ebenv/bin/activate
pip install awsebcli
deactivate
sudo ln -s ~/ebenv/bin/eb /usr/local/bin/

2
在我的情况下,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']))

0

我遇到了完全相同的问题,对我来说,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'

终端重启后,一切都按预期工作。


0
从您的日志中提取的错误信息显示需要 python-dateutil>=2.1 版本。因此,您需要确保已安装该版本,如果没有则进行安装。我曾遇到类似的问题,在我的情况下解决方案是:
 $ pip install --ignore-installed python-dateutil==2.2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接