ImportError:芹菜3.1和Python 2.7没有名为芹菜的模块
在Windows上使用Python 2.7和芹菜3.1.25,当我们使用ImportError:芹菜3.1和Python 2.7没有名为芹菜的模块,python,python-2.7,celery,Python,Python 2.7,Celery,在Windows上使用Python 2.7和芹菜3.1.25,当我们使用 celery -A proj worker -l info 我们得到了错误 ImportError: No module named celery 问题:当我们 将文件名从芹菜.py更改为celeryApp.py 将tasks.py中的导入语句从from.celery import app更改为from celeryApp import app 为什么会这样?我们如何解决这个问题 目录结构 /proj/__init
celery -A proj worker -l info
我们得到了错误
ImportError: No module named celery
问题:当我们
- 将文件名从
更改为芹菜.py
celeryApp.py
- 将
中的导入语句从tasks.py
更改为from.celery import app
from celeryApp import app
/proj/__init__.py
/proj/celeryApp.py
/proj/tasks.py
/proj/celeryApp.py
from __future__ import absolute_import, unicode_literals
from celery import Celery
app = Celery('tasks',
broker='amqp://jack:jack@192.168.1.26:5672//',
backend='amqp://',
include=['proj.tasks'])
if __name__ == '__main__':
app.start()
from __future__ import absolute_import, unicode_literals
from celeryApp import app
@app.task
def add(x, y):
return x + y
/proj/tasks.py
from __future__ import absolute_import, unicode_literals
from celery import Celery
app = Celery('tasks',
broker='amqp://jack:jack@192.168.1.26:5672//',
backend='amqp://',
include=['proj.tasks'])
if __name__ == '__main__':
app.start()
from __future__ import absolute_import, unicode_literals
from celeryApp import app
@app.task
def add(x, y):
return x + y
启动芹菜工作程序时,应命名应用程序以匹配配置芹菜模块的python文件。你应该从工作开始
celery worker -l info -A tasks
您不应该将配置文件命名为芹菜.py
。这将在开始导入时导致问题
from celery import Celery
您的文件应命名为其他名称,但不能命名为芹菜.py
此外,在您的配置文件中,不需要添加
if __name__ == '__main__':
app.start()
如果您要显式地包含proj.tasks
请确保proj
位于python路径中,或者您可以在使用tasks
应用程序启动worker时将其删除