ImportError: нет модуля с именем dateutil

Я пытаюсь следовать примеру в документе "Первые шаги с сельдереем". Я установил сельдерей с помощью пипса.

Я создал файл tasks.py в ~/python/celery, и он содержит следующее:

from celery import Celery

celery = Celery('tasks', broker='amqp://guest@localhost//')

@celery.task
def add(x, y):
    return x + y

Я запустил рабочий с помощью сельдерея -A задачник --loglevel=info, находясь в каталоге ~/python/celery, и он, кажется, работает.

В отдельном окне терминала я запустил Python и запустил следующее:

from tasks import add
add.delay(4, 4)

Я получаю сообщение об ошибке: Файл "/Library/Python/2.7/site-packages/celery/utils/timeutils.py", строка 17, из dateutil import tz ImportError: Нет модуля с именем dateutil

Как мне установить dateutils? Он указан как установленный модуль, когда я набираю "pip freeze"

Спасибо!

2 ответа

Решение

Это странно, так как вы говорите, что можете видеть его как установленный с pip,

Я только что побежал pip freeze | grep date и вот что я получаю:

python-dateutil==1.5

Ваш ответ чем-то похож? Запустив следующее:

$ python
>>> import dateutil
>>> help(dateutil)

Мне сказали, что мой dateutil модуль установлен в /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/dateutil/__init__.py (OS X). Я бы проверил вашу установку Python, чтобы убедиться, что ничего не пошло не так. Там не должно быть необходимости устанавливать его отдельно, но вы можете использовать pip для удаления, а затем переустановить

У меня была та же проблема с Python3, хотя когда я пытался установить его, в сообщении говорилось, что это уже было. Итак, исправление было:

sudo pip3 uninstall python-dateutil
sudo pip3 install python-dateutil

Как предлагается здесь.

Другие вопросы по тегам