Django:当我导入 Django 模型或函数时,Celery 抛出错误
Django: Celery throws an error when I import Django model or function when I am using it
我在使用 Django 配置 Celery 时遇到问题。
当我尝试将这样的函数导入 Celery 文件时:
def add_proxy():
proxy = ProxyList(timezone.now())
proxy.save()
运行 命令:
celery -A estatefilter_backend worker -l info
导致错误:
django.core.exceptions.ImproperlyConfigured:
Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
我正在使用 Python 3.7.5 和 Django 2.2.7。
os.environ.setdefault()
行必须在任何可能导入 Django 模块的导入之前,例如:
from __future__ import absolute_import, unicode_literals
import os
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'estatefilter_backend.settings')
from celery import Celery
from django.conf import settings
from scrapper.add_scrape import add_proxy
app = Celery('estatefilter_backend', broker='amqp://localhost')
app.config_from_object('django.conf:settings')
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
我在使用 Django 配置 Celery 时遇到问题。
当我尝试将这样的函数导入 Celery 文件时:
def add_proxy():
proxy = ProxyList(timezone.now())
proxy.save()
运行 命令:
celery -A estatefilter_backend worker -l info
导致错误:
django.core.exceptions.ImproperlyConfigured:
Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
我正在使用 Python 3.7.5 和 Django 2.2.7。
os.environ.setdefault()
行必须在任何可能导入 Django 模块的导入之前,例如:
from __future__ import absolute_import, unicode_literals
import os
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'estatefilter_backend.settings')
from celery import Celery
from django.conf import settings
from scrapper.add_scrape import add_proxy
app = Celery('estatefilter_backend', broker='amqp://localhost')
app.config_from_object('django.conf:settings')
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)