BC9
BC9

Reputation: 101

Python DistributionNotFound Error after installing EB CLI 3.0

Have tried many things, but keep getting this error after multiple attempts to update python, pip, etc. I am on OS X running 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

Upvotes: 10

Views: 6000

Answers (7)

Aziz Alto
Aziz Alto

Reputation: 20291

From the raised error in your log, it needs python-dateutil>=2.1. So you need to make sure that version is installed and install it if not. I had similar issue, and the solution (in my case) is:

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

Upvotes: 0

Virendra Sagar
Virendra Sagar

Reputation: 71

use the following command

sudo pip install python-dateutil

to upgrade it

Upvotes: 7

Kwame Yeboah
Kwame Yeboah

Reputation: 79

in my case on mac osx 10.10, I had to reinstall.

sudo pip install python-dateutil

Just in case some runs into this type of error. check the last paragraph in the trace for the kind of error that it is being raised. In my case, this was:

 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']))

Upvotes: 2

Marcin Rapacz
Marcin Rapacz

Reputation: 646

Use the following command:

pip install awsebcli

It will automatically upgrade all dependecies of awsebcli.

Upvotes: 13

Ben Thielker
Ben Thielker

Reputation: 4164

I was experiencing a similar error when trying to run eb, though not for 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

For me the solution was to update setuptools:

sudo pip install --upgrade setuptools

Hope that helps somebody.

Upvotes: 22

Ryan Epp
Ryan Epp

Reputation: 951

I had the exact same issue, for me, the eb script was using the wrong python. To solve it I just modified the eb script:

> 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'

After restarting the terminal, everything work as expected.

Upvotes: 0

Nick Humrich
Nick Humrich

Reputation: 15755

Pip is probably linked to a different version of python then standard.

You should try installing pip using

python get-pip.py

(You can download get-pip.py from the pip website)

Otherwise, You can see which Python everything is linked too.

which python

head -1 $(which eb)

head -1 $(which pip)

You can change to shebang line in the eb script to match pip and it should all work.

You can also install using a virtualenv (pythons recommended way of installing)

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

Upvotes: 2

Related Questions