Use*_*ser 5 python linux django mod-wsgi wsgi
因此,在我的Django结构(默认设置)中,我的文件夹结构如下所示:
/mysite
/mysite
__init.py
settings.py
urls.py
wsgi.py
/mymodel
...
/myapp
...
manage.py
Run Code Online (Sandbox Code Playgroud)
因此,要访问设置文件,默认情况下,wsgi.py被设置为mysite / settings.py。但是,Django将mysite名称分配给2个文件夹,一个在另一个文件夹内。因此,它看起来在最高一级,没有找到它,并引发了错误。我在系统路径中使用父mysite的目录尝试了mysite / mysite / settings.py,但这给出了相同的错误。
ImportError: Could not import settings 'mysite.mysite.settings' (Is it on sys.path? Is there an import error in the settings file?): No module named mysite.mysite.settings
Run Code Online (Sandbox Code Playgroud)
要获取有关此错误的更多信息,请检查如何停止获取ImportError:将django与wsgi一起使用时,无法导入设置'mofin.settings'吗?
我只是想知道为什么Django会让默认结构变得如此困难,并且重命名是最好的出路吗?看来这可能是草率的,并且容易出错。不知道如果我确实开始重命名,我必须在几个地方更改名称。似乎很危险。
关键的一点明白的是,顶层mysite
是不是一个Python包(注意,有没有__init__.py
)。它只是用于组织目的的常规文件夹。(这就是为什么mysite.mysite.settings
无论如何都将永远无法工作的原因PYTHONPATH
。)
您需要做的就是确保顶级mysite
目录是该项目上唯一的内容PYTHONPATH
。一旦这样做,一切都将按照您期望的方式工作。(但是,如果您发现双重命名令人困惑,那么您一定可以小心地将其重命名。)