芹菜姜戈:启动工作线程 - 导入错误:没有名为 XXX 的模块



我很难劳恩给芹菜工人。

此处的示例工作正常,并且对文档关闭。

我的问题是我的真实配置文件夹构造是这样的:

djangosite/
|-- package/
|    |-- __init__.py
|    |-- laboratory/
|    |    |-- __init__.py
|    |    |-- migrations/
|    |    |-- templates/
|    |    |-- apps.py
|    |    |-- models.py
|    |    +-- views.py
|-- mysite/
|    |-- __init__.py
|    |-- settings.py
|    |-- urls.py
|    |-- celery.py
|    +-- wsgi.py
|-- manage.py

当示例在文件夹中显示应用时,我的应用程序是包的子文件夹。 我的网站文件夹__init__

from __future__ import absolute_import, unicode_literals
from .celery import app as celery_app
__all__ = ['celery_app']

celery.py包含:

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings')
app = Celery('celery_app')
# This reads, e.g., CELERY_ACCEPT_CONTENT = ['json'] from settings.py:
app.config_from_object('django.conf:settings')
# For autodiscover_tasks to work, you must define your tasks in a file called 'tasks.py'.
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)

@app.task(bind=True)
def debug_task(self):
print("Request: {0!r}".format(self.request))

我启动:celery worker -l info -A mysite

而芹菜找不到laboratory模块:

Traceback (most recent call last):
File "C:Python27Librunpy.py", line 174, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "C:Python27Librunpy.py", line 72, in _run_code
exec code in run_globals
File "D:DeveloppementsVirtualEnvlaboProdScriptscelery.exe__main__.py", line 9, in <module>
File "d:developpementsvirtualenvlaboprodlibsite-packagescelery__main__.py", line 30, in main
main()
File "d:developpementsvirtualenvlaboprodlibsite-packagescelerybincelery.py", line 81, in main
cmd.execute_from_commandline(argv)
File "d:developpementsvirtualenvlaboprodlibsite-packagescelerybincelery.py", line 793, in execute_from_commandline
super(CeleryCommand, self).execute_from_commandline(argv)))
File "d:developpementsvirtualenvlaboprodlibsite-packagescelerybinbase.py", line 311, in execute_from_commandline
return self.handle_argv(self.prog_name, argv[1:])
File "d:developpementsvirtualenvlaboprodlibsite-packagescelerybincelery.py", line 785, in handle_argv
return self.execute(command, argv)
File "d:developpementsvirtualenvlaboprodlibsite-packagescelerybincelery.py", line 717, in execute
).run_from_argv(self.prog_name, argv[1:], command=argv[0])
File "d:developpementsvirtualenvlaboprodlibsite-packagescelerybinworker.py", line 179, in run_from_argv
return self(*args, **options)
File "d:developpementsvirtualenvlaboprodlibsite-packagescelerybinbase.py", line 274, in __call__
ret = self.run(*args, **kwargs)
File "d:developpementsvirtualenvlaboprodlibsite-packagescelerybinworker.py", line 212, in run
state_db=self.node_format(state_db, hostname), **kwargs
File "d:developpementsvirtualenvlaboprodlibsite-packagesceleryworker__init__.py", line 95, in __init__
self.app.loader.init_worker()
File "d:developpementsvirtualenvlaboprodlibsite-packagesceleryloadersbase.py", line 128, in init_worker
self.import_default_modules()
File "d:developpementsvirtualenvlaboprodlibsite-packagesceleryloadersbase.py", line 116, in import_default_modules
signals.import_modules.send(sender=self.app)
File "d:developpementsvirtualenvlaboprodlibsite-packagesceleryutilsdispatchsignal.py", line 166, in send
response = receiver(signal=self, sender=sender, **named)
File "d:developpementsvirtualenvlaboprodlibsite-packagesceleryfixupsdjango.py", line 73, in on_import_modules
self.worker_fixup.validate_models()
File "d:developpementsvirtualenvlaboprodlibsite-packagesceleryfixupsdjango.py", line 158, in validate_models
django_setup()
File "d:developpementsvirtualenvlaboprodlibsite-packagesdjango__init__.py", line 27, in setup
apps.populate(settings.INSTALLED_APPS)
File "d:developpementsvirtualenvlaboprodlibsite-packagesdjangoappsregistry.py", line 85, in populate
app_config = AppConfig.create(entry)
File "d:developpementsvirtualenvlaboprodlibsite-packagesdjangoappsconfig.py", line 94, in create
module = import_module(entry)
File "C:Python27Libimportlib__init__.py", line 37, in import_module
__import__(name)
ImportError: No module named laboratory

如何解决这个问题?我需要把我的应用程序放在 django 根文件夹吗?

您可以尝试使用此代码来启动芹菜:Celery -A YOURPROJECTNAME worker -l INFO节拍时间表:Celery -A YOURPROJECTNAME worker -b -l INFO

最新更新