Skip to main content
 首页 » 编程设计

python | docker | Django | django.core.exceptions.ImproperlyConfigured 错误

2025年01月19日30java哥

我正在尝试运行容器内的 python 文件,但出现以下异常:

Traceback (most recent call last): 
  File "/tmp/e2esetup.py", line 2, in <module> 
    django.setup() 
  File "/usr/local/lib/python3.6/site-packages/django/__init__.py", line 17, in setup 
    configure_logging(settings.LOGGING_CONFIG, settings.LOGGING) 
  File "/usr/local/lib/python3.6/site-packages/django/conf/__init__.py", line 55, in __getattr__ 
    self._setup(name) 
  File "/usr/local/lib/python3.6/site-packages/django/conf/__init__.py", line 41, in _setup 
    % (desc, ENVIRONMENT_VARIABLE)) 
django.core.exceptions.ImproperlyConfigured: Requested setting LOGGING_CONFIG, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings. 

在 docker 中运行的代码:

docker exec -it $DOCKER_ID python /tmp/e2esetup.py 

我的代码:

import django 
django.setup() 
from django.conf import settings 
from django.contrib.auth.models import User 
from apps.account.models import Profile 
from apps.organisation.models import Organisation 
....  
#rest is fine for sure 

我是 django 和 docker 的新手,据我所知,我需要设置环境,但我不知道如何运行 manage.py 为你做这件事,所以如果我要运行通过解释器读取 python 文件,我必须手动执行此操作,但我不知道该怎么做。

我还读到我需要以某种方式管理 docker 环境,但我也不确定这意味着什么,感谢任何帮助!

请您参考如下方法:

由于错误提示您需要设置 DJANGO_SETTINGS_MODULE 环境变量。它的值应该类似于 mysite.settings(检查它在 manage.py 中的内容)。

可以在Dockerfile中设置

ENV DJANGO_SETTINGS_MODULE mysite.settings 

或者在你的环境中

docker exec -it -e "DJANGO_SETTINGS_MODULE=mysite.settings" $DOCKER_ID python /tmp/e2esetup.py 

或者在脚本本身。

import os 
 
import django 
 
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings')  
 
django.setup()