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

标签 python django python-3.x docker

我正在尝试运行容器内的 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()

关于 python | docker | Django | django.core.exceptions.ImproperlyConfigured 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49177473/

相关文章:

python - 如何在 django+fastcgi+IIS 设置中销毁资源?

python-2.7 - Pandas 从 python 中的字符串列中删除数字

python - 通过计算传播 NaN

python - 2 个数据框列之间的相似性

python - 在Python中的txt的每一行中追加文本

python - keras python 中 model.summary() 的不同参数是什么意思?

Django 模块化测试

python - 如何获取所有行的 QuerySet,每一行都有特定的字段?

python - 如何随机替换列表中的字符串

python - Matplotlib 无法抑制图形窗口