2012-09-07 30 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