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