2014-01-28 19 views
0

改變的sys.path在Django測試項目settings.py我最近嘗試把這個在:settings.py中

try: 
    import mymodule 
except: 
    import sys 
    TESTPROJ_ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), '..')) 
    PROJ_PARENT = os.path.abspath(os.path.join(TESTPROJ_ROOT, '..')) 
    sys.path.append(PROJ_PARENT) 

的目的是,如果mymodule沒有安裝在環境中添加本地項目路徑。爲了幫助理解,目錄結構如下:

base/mymodule 
base/test_project/manage.py 
base/test_project/test_project/settings.py 

這個工作,只要mymodule是不是在環境中。只要import mymodule被執行(在任何地方settings.py),我得到了錯誤:

django.core.exceptions.ImproperlyConfigured: ImportError django.contrib.admin: cannot import name signals

我有兩個問題...

一)有沒有辦法來阻止這種情況發生的錯誤?

b)是有另一種「智能」的方式,讓settings.py改變路徑,以允許,如果它不能在環境中包括本地的模塊?

在此先感謝。

回答