2011-06-19 54 views
1

爲了能夠使用帶有django的空閒shell,我正在嘗試手動設置DJANGO_SETTINGS_VARIABLE.I包括settings.py駐留在sys.path.and中的目錄,並且能夠導入它。但是,以下似乎沒有工作。手動設置DJANGO_SETTINGS_VARIABLE

import settings 
    from django.core.management import execute_manager 
    execute_manager(settings) 

我也試過

settings = imp.find_module('settings') 
execute_manager(settings) 

採取線索從manage.py但無濟於事。這裏發生了什麼,還有一個文件如何作爲一個模塊導入,我記得一個模塊需要在一個目錄中有一個inti文件。

+1

而不是寫作「它似乎並不奏效」,指定什麼不工作。你有例外嗎?那麼,什麼是例外?或者它運行,但不像你預期的那樣行事?如果是這樣,究竟發生了什麼,你期望會發生什麼? –

回答

1

您應該使用configure()

from django.conf import settings 
from myapp import myapp_defaults 

settings.configure(default_settings=myapp_defaults, DEBUG=True) 
5

我有裝載設置一些困難,傳統的使用場景之外也是如此。我並不是100%確定我理解你的困難,所以我會給你一些可能性,如果你能澄清一點,我會盡力幫助你。

如果你需要的是利用閒置的外殼,我認爲Django是言盡於此輕鬆地:

python manage.py shell 

假設空閒時默認的shell(雖然我希望你能檢查出IPython中,如果是這樣的話,那麼從長遠來看你可能會喜歡這個開關)。

如果你想爲django設置系統變量,它叫做:DJANGO_SETTINGS_MODULE,而不是DJANGO_SETTINGS_VARIABLE,或者至少是我使用它的時候。如何在啓動shell之前設置變量可能是特定於平臺的。在linux上你想編輯你的.bashrc。在Windows上,你需要做一個:「SET DJANGO_SETTINGS_MODULE = your.python.path.to.django.settings。」

如果你想在程序啓動的外殼,這樣,你可以做,例如:

import settings 
from django.core.management import setup_environ 
setup_environ(settings) 

希望這有助於之前動態設置環境;讓我知道你是否需要別的東西。