我正在尝试在我的django应用程序中使用芹菜。但是,我得到了一个错误,所以我从我正在阅读的书(Django 3的例子)中复制了代码。现在,当我运行python manage.py makemigrations命令时,我得到这个错误:
app.autodiscover_tasks() TypeError: autodiscover_tasks() missing 1 required positional argument: 'packages'下面是我的celery.py,其中的错误是:
import os
from celery import Celery
# set the default Django settings module for the 'celery' program.
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myshop.settings')
app = Celery('myshop')
app.config_from_object('django.conf:settings')
app.autodiscover_tasks()下面是我的完整错误:
Traceback (most recent call last):
File "manage.py", line 21, in <module>
main()
File "manage.py", line 17, in main
execute_from_command_line(sys.argv)
File "C:\Users\Dell\Desktop\Django\online-shop\venv\lib\site-packages\django\core\management\__init__.py", line 401, in execute_from_command_line
utility.execute()
File "C:\Users\Dell\Desktop\Django\online-shop\venv\lib\site-packages\django\core\management\__init__.py", line 345, in execute
settings.INSTALLED_APPS
File "C:\Users\Dell\Desktop\Django\online-shop\venv\lib\site-packages\django\conf\__init__.py", line 83, in __getattr__
self._setup(name)
File "C:\Users\Dell\Desktop\Django\online-shop\venv\lib\site-packages\django\conf\__init__.py", line 70, in _setup
self._wrapped = Settings(settings_module)
File "C:\Users\Dell\Desktop\Django\online-shop\venv\lib\site-packages\django\conf\__init__.py", line 177, in __init__
mod = importlib.import_module(self.SETTINGS_MODULE)
File "C:\Users\Dell\AppData\Local\Programs\Python\Python38\lib\importlib\__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 961, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 783, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "C:\Users\Dell\Desktop\Django\online-shop\myshop\myshop\__init__.py", line 2, in <module>
from .celery import app as celery_app
File "C:\Users\Dell\Desktop\Django\online-shop\myshop\myshop\celery.py", line 10, in <module>
app.autodiscover_tasks()
TypeError: autodiscover_tasks() missing 1 required positional argument: 'packages'有什么问题吗?
发布于 2020-11-20 18:54:56
看起来您使用的是Celery版本3.x app.autodiscover_tasks()只能在版本4.x上运行
尝试使用:
from django.apps import apps
app.autodiscover_tasks(lambda: [n.name for n in apps.get_app_configs()])https://stackoverflow.com/questions/64927955
复制相似问题