2017-02-06 184 views
1

我想在我的項目中使用django-admin dbshel​​l(任何其他cmd都給出相同的結果)。和我Django無法導入設置

You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings. 

所以我做

export DJANGO_SETTINGS_MODULE=mysite.settings 

,現在我得到

no module named 'mysite' 

當然,我更換 'mysite的' 與我的應用程序的名稱。 順便說一句,我已經有這個在我的代碼:

if __name__ == "__main__": 
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings") 

什麼想法? 謝謝

+0

多少設置文件,你呢?例如。 'local.py','prod.py'等。 –

+0

您正在使用哪個Django版本? – MicroPyramid

+0

Django版本1.10.5,我的應用程序根目錄中只有一個settings.py文件。 順便說一句,如果我把「mysite.settings」放在DJANGO_SETTINGS_MODULE中,那麼我甚至不能自己運行'django-admin'並獲得幫助信息 – dkx22

回答

4

你可以這樣做:

python manage.py dbshell --settings=mysite.settings 
+1

請注意'./ manage.py'命令默認爲' mysite.settings' - 你只需要'--settings'來指定一個自定義設置文件。 – Alasdair

2

通常,你應該只使用django-admin開始一個新的項目。項目創建完成後,請改用./manage.pymanage.py腳本負責爲您加載設置。

當您使用django-admin,包含mysite需要的目錄是在Python路徑的Django的是能夠加載mysite.settings

相關問題