2012-10-12 37 views
3

在這個查詢中有我的帖子,但其中大部分都是針對linux的。他們都沒有明確的窗口在windows上設置DJANGO_SETTINGS_MODULE正確

在我的應用程序我設置數據庫(sqlite3,默認在Django)。編輯我的應用程序的setting.py文件(mysite的)

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'. 
     'NAME': 'D:/Django_Code/sqlite.db',      # Or path to database file if using sqlite3. 
     'USER': '',      # Not used with sqlite3. 
     'PASSWORD': '',     # Not used with sqlite3. 
     'HOST': '',      # Set to empty string for localhost. Not used with sqlite3. 
     'PORT': '',      # Set to empty string for default. Not used with sqlite3. 
    } 
} 

發現我必須設置DJANGO_SETTINGS_MODULE環境,使Django的可以瞭解數據庫的設置後之後。所以,我把它像

DJANGO_SETTINGS_MODULE = "D:\Django_Code\mysite\mysite\settings.py" 

交叉檢查數據庫設置時,我發出

>>> from django.db import connection 
>>> cursor = connection.cursor() 

它說DJANGO_SETTINGS_MODULE環境變量是不確定的。

需要幫助正確設置DJANGO_SETTINGS_MODULE。

+1

你不應該真的需要設置DJANGO_SETTINGS_MODULE。正如Caspar所說,只需執行'python manage.py shell'就可以爲Django設置一個shell。 –

+0

是的,它的工作 – navyad

回答

6

在Windows中設置DJANGO_SETTINGS_MODULE的最簡單方法是使用命令提示符下的set命令。您還應該可以通過系統屬性來設置它,但是您需要關閉並重新打開命令提示符以使更改生效。

可以使用set命令以及查詢的DJANGO_SETTINGS_MODULE當前值:

C:\temp\testproject> set DJANGO_SETTINGS_MODULE 

此外,你需要將其設置爲Python模塊名稱,not the filename(將其設置爲文件名會給你類似的錯誤爲 「無法導入設置 'C:\ TEMP \ testproject \ settings.py'(它是不是在sys.path中?):不支持文件名導入」)

例如,

C:\temp\testproject> set DJANGO_SETTINGS_MODULE=testproject.settings 

然後你就可以運行python並導入模塊。

>>> import sys 
>>> sys.path += ['C:\\temp'] 
>>> from django.db import connection 
>>> connection.cursor() 
<django.db.backends.util.CursorDebugWrapper object at 0x02C7F0B0> 

需要注意的是,我們還將明確添加含(在這種情況下testproject)的Django項目的目錄sys.path,這實際上是目錄,其中的Python查找模塊的列表。這是必要的,因爲Python將設置文件作爲python模塊導入,而不是文件(如前所述)。

如果您希望交互式shell使用Django對象播放,您可以使用shell management command。在Django項目目錄,運行以下命令:

manage.py shell 

既然你是在Windows上,你可能需要做

python manage.py shell 

而是因爲我個人有使用Python腳本的問題不否則接收命令行參數。

C:\temp\testproject> python manage.py shell 

In [1]: from django.db import connection 

In [2]: connection.cursor() 
Out[2]: <django.db.backends.util.CursorDebugWrapper at 0x33a0bd0> 

(請注意,我有IPython安裝和Django是被聰明和使用;如果您尚未安裝的IPython,你的shell會會略有不同。)

如果你想運行使用Django的腳本,最簡單的方法是write a custom management command,然後您可以使用參數manage.py運行。

+0

你可以永久導入Windows上的環境變量? – ExoticBirdsMerchant

+1

@ExoticBirdsMerchant當然,你可以將其設置爲[與在窗口上設置其他環境變量的方式相同](http://support.microsoft.com/kb/310519)(該文章適用於XP,但它仍然與7相同) 。順便提一句,這個UI很糟糕,如果你需要在Windows上編輯一些環境變量,那麼你可能會喜歡嘗試[Rapid EE](http://www.rapidee.com/)(無隸屬關係)。 – Caspar

+0

非常感謝環境變量中的GUI在Windows上非常糟糕且不實用,Rapid EE非常棒! – ExoticBirdsMerchant

相關問題