2012-01-04 50 views
2

我在虛擬環境(使用virtualenv)中運行Django,並且我正在嘗試添加自定義開發環境設置文件以簡化應用程序配置。我的計劃是用兩行代碼Django settings.py錯誤:不支持按文件名導入

if os.environ.get('DEVELOPMENT', None): 
    from login import settings_dev 

我也試過import settings_deffrom login.settings_dev import *做到這一點。我的settings_dev.py文件與我的settings.py文件位於同一目錄中,我的應用程序位於名爲login的文件夾中。當我運行python login/manage.py syncdb我得到這個錯誤:

Error: Import by filename is not supported. 

我的搜索不斷造就DJANGO_SETTINGS_MODULE(雖然我不知道它是如何發揮到這一切 - 第一個Django應用程序:]),所以只是一個供參考它被設置在我的settings.py文件中,如下所示:

os.environ['DJANGO_SETTINGS_MODULE'] = 'login.settings' 

我也嘗試在我的終端中導出它,但我得到了同樣的錯誤。

有誰知道我怎麼能解決這個/我在做什麼錯在這裏?

+0

'DJANGO_SETTINGS_MODULE'應在運行你的應用程序之前,不要在'settings.py'中設置。 – demalexx 2012-01-04 04:06:29

+0

我也嘗試做出口DJANGO_SETTINGS ...但收到相同的錯誤 – 2012-01-04 18:37:07

回答

1

在原來的settings.py,在最後:

try: 
    from settings_dev import * 
except ImportError: 
    pass 

在同一目錄settings.py創建settings_dev.py,並在其中,在最頂部添加以下兩行:

import sys 
globals().update(vars(sys.modules['settings'])) 

現在在這個文件中添加你想要的任何開發設置。

1

確保在傳遞文件的相對地址時使用「。」。代替 」/」。

我面臨着同樣的錯誤我實際做

「音樂/網址」

但應

「music.urls」