Django ModuleNotFoundError:尝试使用wsgi服务器托管应用程序时,没有名为“ mysite.settings”的模块

问题描述

所以我想使用wsgi将我的第一个Django应用程序部署在cherryPy Web服务器上。而且我对os.environ ['DJANGO_SETTINGS_MODULE']有疑问。尝试运行可调用应用程序时,它将引发错误,未找到该模块。项目结构:

ResourceManager
   ResourceManager
     ResourceManager
        __init__.py
        cherryserver.py
        settings.py
        urls.py
        wsgi.py
  SimpleResourceManager
    migrations
    __init__.py
    admin.py
    apps.py
    models.py
    serializers.py
    tests.py
    urls.py
    views.py
  manage.py

wsgi.py文件

import os
import sys
from django.core.wsgi import get_wsgi_application


BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.insert(0,BASE_DIR)
os.environ['DJANGO_SETTINGS_MODULE'] = 'ResourceManager.settings'
os.environ.setdefault('DJANGO_SETTINGS_MODULE','ResourceManager.settings')

application = get_wsgi_application()

cherryserver.py:

import cherrypy
from ResourceManager.ResourceManager.wsgi import application


if __name__ == '__main__':
# Mount the application
cherrypy.tree.graft(application,"/")

# Unsubscribe the default server
cherrypy.server.unsubscribe()


 # Instantiate a new server object
server = cherrypy._cpserver.Server()

 # Configure the server object
server.socket_host = "0.0.0.0"
server.socket_port = 8080
server.thread_pool = 30

# Subscribe this server
server.subscribe()

cherrypy.engine.start()
cherrypy.engine.block()

在使用命令runserver 8080时,应用程序工作正常,但是当我尝试在其他服务器上运行它时。它说ModuleNotFoundError:没有名为“ ResourceManager.settings”的模块。

所以我尝试:更改cherryserver.py在目录中的位置,我在wsgy.py文件添加了其他代码行,并且在将我的应用程序部署到其他服务器上时出现了问题。为什么要使用cherryPy,我必须测试5个基于python的Web服务器。

解决方法

尝试从以下位置更改:

from ResourceManager.ResourceManager.wsgi import application

收件人:

from wsgi.py import application

这是因为它们位于相同的目录中,如果这不起作用,则似乎弄乱了from,因为看来您到wsgi文件的路径是错误的。