簡體   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