Django错误:配置不当:WSGI应用程序

2024-05-13 02:21:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我的申请表昨晚还在用,不知道今天早上为什么不行。我想我所做的就是创建一个名为django的应用程序来存储我的模型、测试和视图。

获取此错误时,请将django与Heroku Postgres应用程序作为中间件在OS X和dj_数据库上运行:

  File "/Users/{ME}/Projects/{PROJECT}/{PROJECT}/lib/python2.7/site-packages/django/core/servers/basehttp.py", line 58, in get_internal_wsgi_application
    "could not import module '%s': %s" % (app_path, module_name, e)) django.core.exceptions.ImproperlyConfigured: WSGI application
'{PROJECT}.wsgi.application' could not be loaded; could not import module
'{PROJECT}.wsgi': No module named core.wsgi

我的wsgi.py文件的相关部分:

"""
WSGI config for {PROJECT} project.

This module contains the WSGI application used by Django's development
server and any production WSGI deployments. It should expose a
module-level variable named ``application``. Django's ``runserver``
and ``runfcgi`` commands discover this application via the
``WSGI_APPLICATION`` setting.

Usually you will have the standard Django WSGI application here, but
it also might make sense to replace the whole Django WSGI application
with a custom one that later delegates to the Django one. For example,
you could introduce WSGI middleware here, or combine a Django
application with an application of another framework.

"""
import os

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "do.settings")

# This application object is used by any WSGI server configured to use this
# file. This includes Django's development server, if the WSGI_APPLICATION
# setting points here.
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

# Apply WSGI middleware here.
# from helloworld.wsgi import HelloWorldApplication
# application = HelloWorldApplication(application)

我的settings.py文件的相关(我认为)部分:

WSGI_APPLICATION = '{PROJECT}.wsgi.application'

# ...

import dj_database_url
DATABASES['default'] = dj_database_url.config(default='sqlite://db/sqlite3.db')

Tags: thedjangopycoreimportprojectwsgiget
2条回答

从Djangodocumentation

You’ll need to avoid naming projects after built-in Python or Django components. In particular, this means you should avoid using names like django (which will conflict with Django itself) or test (which conflicts with a built-in Python package).

创建一个名为django的应用程序意味着任何from django import X都将查看您的应用程序,而不是django框架。

在本例中,软件试图导入^{},但它现在正在应用程序代码中查找此文件,在该代码中找不到它;因此出现错误:No module named core.wsgi


为您的应用程序命名。

您必须重命名包含应用程序的文件夹以及settings.py中的INSTALLED_APPS项。

相关问题 更多 >