所以在我的Django结构(默认设置)中,我的文件夹结构如下:
/mysite
/mysite
__init.py
settings.py
urls.py
wsgi.py
/mymodel
...
/myapp
...
manage.py
因此,要访问设置文件,默认情况下,wsgi.py设置为 mysite / settings.py 。然而,Django将mysite名称赋予了两个文件夹,一个在另一个文件夹中。所以它看起来是顶级的,没有找到它,并引发错误。我尝试使用系统路径中的父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
要获取有关此错误的更多信息,请查看How do I stop getting ImportError: Could not import settings 'mofin.settings' when using django with wsgi?
我只是想知道为什么Django会使默认结构如此困难,如果重命名的东西是最好的出路?似乎它可能是草率的,并且是一种容易出错的做事方式。如果我开始重命名,我不知道有多少地方需要更改名称。似乎很危险。
答案 0 :(得分:5)
要理解的关键点是顶级mysite
不是 Python包(请注意,没有__init__.py
)。它只是一个用于组织目的的常规文件夹。 (这就是mysite.mysite.settings
永远无法工作的原因,无论PYTHONPATH
如何。)
您需要做的就是确保mysite
上此项目中唯一的顶级PYTHONPATH
目录。一旦你这样做,一切都应该按照你期望的方式工作。 (如果你发现双命名令人困惑,你肯定可以在某种程度上重新命名。)