Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python django.core.exceptions.impropertlyconfigured:WSGI应用程序';应用程序';无法加载_Python_Django_Openshift_Wsgi_Openshift Nextgen - Fatal编程技术网

Python django.core.exceptions.impropertlyconfigured:WSGI应用程序';应用程序';无法加载

Python django.core.exceptions.impropertlyconfigured:WSGI应用程序';应用程序';无法加载,python,django,openshift,wsgi,openshift-nextgen,Python,Django,Openshift,Wsgi,Openshift Nextgen,情况是 我从中克隆了OpenShift-V3的Django代码。当我使用python manage.py runserver运行代码时,得到一个错误,如下所示: django.core.exceptions.ImpropertlyConfigured:WSGI应用程序 无法加载“应用程序”;导入模块时出错: '应用程序看起来不像模块路径 我没有向代码中添加任何内容,所需的包已经满足了 转到django ex/project/settings.py 更改settings.py中的行,如下所示 WS

情况是

我从中克隆了OpenShift-V3的Django代码。当我使用
python manage.py runserver
运行代码时,得到一个错误,如下所示:

django.core.exceptions.ImpropertlyConfigured:WSGI应用程序 无法加载“应用程序”;导入模块时出错: '应用程序看起来不像模块路径


我没有向代码中添加任何内容,所需的包已经满足了

转到django ex/project/settings.py

更改settings.py中的行,如下所示

WSGI\u应用程序='APPLICATION'
WSGI\u应用程序='WSGI.APPLICATION'

就是这样:(

在settings.py文件中 更改如下:


WSGI_应用程序='your_project_name.WSGI.APPLICATION'

我使用了一个中间件Corsmidware,但忘记了安装它,所以在安装之后,它工作得非常好

pip安装django cors收割台


请注意,在启动wsgi应用程序之前在任何地方导入模块时出现的任何错误都会提示此消息,因此,请首先查看跟踪并从顶部开始解决问题

我将Django应用程序从Python2.7移植到python3,并添加了各种模块导入问题,而不是直接连接到此问题。

您有Django调试工具栏吗 卸下它并检查问题是否消失。可能发生的情况:

pip uninstall django-debug-toolbar INSTALLED_APPS = [ ... 'debug_toolbar', ... ] MIDDLEWARE = [ ... 'debug_toolbar.middleware.DebugToolbarMiddleware', ... ] pip卸载django调试工具栏 已安装的应用程序=[ ... “调试工具栏”, ... ] 中间件=[ ... “调试工具条.中间件.调试工具条中间件”, ... ]
如果您在本地运行django项目进行开发,只需从settings.py模块中删除WSGI_应用程序变量。它需要在prod/stage设置中使用,例如settings_prod.py

我使用的是django cors头,然后我认为我还没有在我的项目中实现cors,所以继续安装django cors中间件,然后它开始给出wsgi异常,所以我检查了堆栈跟踪,发现是django cors头和django cors中间件相互冲突。我不得不卸载django cors中间件,但它仍然给出相同的异常,所以也卸载django cors头,然后重新安装,一切正常。…

仔细阅读,可能会说“上述异常是以下异常的直接原因:…”。而“上述异常”是您忘记安装whitehoise。运行
pip install whitenoise
,它对我有效。

确保您处于所需的python环境中

获取执行django所需的
requirements.txt文件或
python模块列表


安装所有模块后,您就可以开始工作了。

我尝试了所有这些解决方案,对我有效的解决方案是:

pip install django-htmlmin
此模块缺失,在requirements.txt中未提及 显示以wsgi应用程序配置不正确结束的长错误消息。但在中间的某个地方,我可以看到没有安装名为“htmlmin”的模块,并且已解决该问题

pip install whitenoise
虽然解决了我的问题。通常是在我们将项目移动到不同的虚拟环境时产生的。有时我们忘记安装软件包&whitenoise只是稍微破坏了应用程序,因为没有提到您缺少“whitenoise”模块。

同样的问题。。 我检查了是否安装了django cors中间件和django cors头文件。我发现它们没有安装,然后我安装了它们

  • python-mpip安装django-cors中间件
  • python-m pip安装django-cors头文件
  • 那么

  • python manage.py迁移
  • python manage.py运行服务器

  • 最后,它成功了……

    也许使用中间件是解决这个问题的简单方法,这个问题主要发生在cors策略上

    代码

    class CorsMiddleware(object):
       def __init__(self, get_response):
          self.get_response = get_response
    
       def __call__(self, request):
          return self.get_response(request)
    
       def process_response(self,resp):
          resp["Access-Control-Allow-Origin"] = "*"
          return resp
    

    当您在中间件中插入某个内容=[…]时,就会发生这种情况
    解决方案是将添加的最新加数放在中间件的顶部。

    转到
    设置.py

    • 在中间件中,检查是否添加了任何不起作用的内容
    • 在已安装的应用程序中,检查是否已添加应用程序。如果未添加,请添加为此项目创建的所有应用程序

    示例:我今天遇到了这个错误,完全不知道为什么会发生这种情况。检查了一段时间后,我发现了一个非常愚蠢的错误,例如,我在中间件中添加了我新创建的应用程序,而不是安装的应用程序。

    在最新版本的Django中,要在
    settings.py
    文件中的安装的应用程序中添加你的应用程序,write-

    [ ..,
    .apps.Config
    ”,
    ]


    其中,
    Config
    apps.py
    文件中函数的名称。

    建议您使用我在中指出的示例Django应用程序,它们没有被重新组织,基本上是使用
    startproject
    时得到的。它们还解释了为使它们与OpenShift V3和h更好地对齐所做的更改它是如何工作的。这对我来说不起作用。我得到了同样的错误,甚至尝试更具体地添加了特定的project.wsgi.application,但它仍然不起作用。这帮助我找到了导致问题的模块。对我来说,这是中间件的旧路径。就像@lonny说的,它确实帮助我了解了哪个模块是问题的原因g这个问题有助于我追踪中间件中的打字错误。谢谢,在我的例子中,我升级了Django(从2.2.2到3.0.4),但还没有升级whitenoise。有一次我更新了whitenoise(从4.1.2到5.0.1)对于最新版本,此错误消失。whitenoise的新升级破坏了我的应用程序。这里有更新应用程序的明确说明。这是正确答案。只需再次检查所有
    middlewar