2012-09-07 49 views
2

我有一个的virtualenv激活和我运行一个命令芹菜没有发现蟒蛇,dateutil,尽管它被安装

celery -A dnslookup worker --loglevel=info 

抛出

Traceback (most recent call last): 
File "/Users/myuser/dev/project-backend-ENV/bin/celery", line 5, in <module> 
from pkg_resources import load_entry_point 
File "/Users/myuser/dev/project-backend-ENV/lib/python2.7/site-packages/setuptools- 0.6c11-py2.7.egg/pkg_resources.py", line 2607, in <module> 
File "/Users/myuser/dev/project-backend-ENV/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg/pkg_resources.py", line 565, in resolve 
pkg_resources.DistributionNotFound: python-dateutil>=1.5,<2.0 

但是Python-dateutil安装在我的virtualenv中。

我该如何解决这个问题?

回答

4

我猜您正在使用一个版本的dateutil这是太新了。安装dateutil到一个新的virtualenv默认情况下,这是行不通的(如您的错误消息指出)让我2.1 dateutil版本。从Celery changelog

相关性列表现在明确规定,我们不希望 蟒蛇-dateutil 2.x的,因为这个版本只支持py3k。

如果您已经安装dateutil 2.0意外,你应该降级到 1.5.0版本:

pip install -U python-dateutil==1.5.0 
+0

你是绝对正确的。这解决了它 - 谢谢。 然而,这是默认dateutil 2.0时,我的Python版本是2.7 - 这并没有多大意义? – flavio87

+0

@ flavio87 - 我同意,这似乎在dateutil的一部分行为。他们的[网站](http://labix.org/python-dateutil)说*由Brian Jones移植到Python 3。如果您需要dateutil Python的2.X,请继续使用1.X系列。* –

+0

有一个新的版本dateutil(2.1),其在两个Python 2和3的作品可悲的是它不支持的Python 2.5,以及芹菜会直到芹菜3.1不降2.5支持(然后我们可以更新dateutil依赖)。这可能是您的系统在发生这种情况时安装了dateutil 2.1 – asksol