繁体   English   中英

为什么Django将2个文件夹命名为项目名称?

[英]Why does Django name 2 folders the project name?

所以在我的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

要获得有关此错误的更多信息,请检查如何停止获取ImportError:在将django与wsgi一起使用时无法导入设置'mofin.settings'?

我只是想知道为什么Django会使默认结构如此困难,如果重命名的东西是最好的出路? 似乎它可能是草率的,并且是一种容易出错的做事方式。 如果我开始重命名,我不知道有多少地方需要更改名称。 似乎很危险。

要理解的关键点是顶级mysite 不是 Python包(请注意,没有__init__.py )。 它只是一个用于组织目的的常规文件夹。 (这就是为什么mysite.mysite.settings永远不会工作,无论PYTHONPATH 。)

您需要做的就是确保顶级mysite目录是PYTHONPATH此项目的唯一内容。 一旦你这样做,一切都应该按照你期望的方式工作。 (如果你发现双命名令人困惑,你肯定可以小心翼翼地重命名。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM