如何解决Django即使发生在manage.py中的设置,“发生异常:请求配置设置不正确,但未配置...” 追加:
对不起,我是Django的新手,如果我忘记了任何重要信息,请发表评论。
我已经在this VSCode tutorial之后设置了Django应用。简而言之,它教我在Venv中构建Django应用的docker映像。
当我开始使用VSCode运行时,发生错误,指出
Exception has occurred: ImproperlyConfigured Requested setting DEBUG,but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
。
但是,我的os.environ.setdefault('DJANGO_SETTINGS_MODULE','yiweis_blog.settings')
和wsgi.py
中都有manage.py
。
同时,当我将外壳直接连接到容器并运行python manage.py runserver
时,它将打印Django version 3.1.1,using settings 'yiweis_blog.settings'
。
我也曾尝试将变量yiweis_blog.settings
分配给DJANGO_SETTINGS_MODULE
中的dockerfile
并在终端中导出该变量,但是它们仍然没有起作用。
感谢您的帮助。谢谢!
追加:
yiweis_blog/yiweis_blog_env/lib/python3.8/site-packages/django/Dockerfile
(其中yiweis_blog是我的根文件夹,存在manage.py)
# For more information,please refer to https://aka.ms/vscode-docker-python
FROM python:3.8-slim-buster
EXPOSE 8000
# Keeps Python from generating .pyc files in the container
ENV PYTHONDONTWRITEBYTECODE 1
# Turns off buffering for easier container logging
ENV PYTHONUNBUFFERED 1
# Install pip requirements
ADD requirements.txt .
RUN python -m pip install -r requirements.txt
workdir /app
ADD . /app
# Switching to a non-root user,please refer to https://aka.ms/vscode-docker-python-user-rights
RUN useradd appuser && chown -R appuser /app
USER appuser
# During debugging,this entry point will be overridden. For more information,please refer to https://aka.ms/vscode-docker-python-debug
CMD ["gunicorn","--bind","0.0.0.0:8000","yiweis_blog.wsgi"]
yiweis_blog/manage.py
#!/usr/bin/env python
"""Django's command-line utility for administrative tasks."""
import os
import sys
def main():
"""Run administrative tasks."""
os.environ.setdefault('DJANGO_SETTINGS_MODULE','yiweis_blog.settings')
try:
from django.core.management import execute_from_command_line
except ImportError as exc:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
) from exc
execute_from_command_line(sys.argv)
if __name__ == '__main__':
main()
docker-compose.yml
version: '3.4'
services:
yiweisblog:
image: yiweisblog
build:
context: .
dockerfile: Dockerfile
ports:
- 8000:8000
gunicorn --bind 0.0.0.0:8000 yiweis_blog.wsgi
的结果是:
appuser@7a4e96306663:/app$ gunicorn --bind 0.0.0.0:8000 yiweis_blog.wsgi
[2020-10-19 07:11:24 +0000] [40] [INFO] Starting gunicorn 20.0.4
[2020-10-19 07:11:24 +0000] [40] [INFO] Listening at: http://0.0.0.0:8000 (40)
[2020-10-19 07:11:24 +0000] [40] [INFO] Using worker: sync
[2020-10-19 07:11:24 +0000] [42] [INFO] Booting worker with pid: 42
[2020-10-19 07:11:41 +0000] [40] [INFO] Handling signal: winch
此后,它只是卡住了,不再响应了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。