2009-11-26 72 views
2

我下面的Django的網站,這是我使用的是Windows XP previsouly做了,一切都很好的教程,但在Windows 7我得到以下錯誤:我怎樣才能在Windows上使用SQLITE Django的7

sqlite3.OperationalError: unable to open database file 

我使用以下命令:

python manage.py sql Blog 

沒有任何一個有什麼可能是錯的任何想法。該數據庫文件位於C:\Software\Sqlite\Databases\Blog.db

和相對settings.py或部分很簡單:

DATABASE_ENGINE = 'sqlite3'   # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'. 
DATABASE_NAME = 'C:\Software\Sqlite\databases\blog.db'    # Or path to database file if using sqlite3. 
DATABASE_USER = ''    # Not used with sqlite3. 
DATABASE_PASSWORD = ''   # Not used with sqlite3. 
DATABASE_HOST = ''    # Set to empty string for localhost. Not used with sqlite3. 
DATABASE_PORT = ''    # Set to empty string for default. Not used with 

我也有用於測試目的添加的每個人都具有完全的權限。

但正如我所說,我得到以下錯誤:

sqlite3.OperationalError: unable to open database file 

任何幫助表示讚賞,

安德魯

+0

是文件名Blog.db or blog.db? Incosistent案件可能會使事情搞砸。我在Win7上,第一次嘗試就完美了。 – 2009-11-26 22:10:28

回答

2

我不認爲你可以使用完整的Windows路徑來訪問你的sqlite數據庫。我在這裏運行了一些測試,我唯一可以在django上使用sqlite3數據庫而不是在項目的同一個目錄中的方法是使用DATABASE_NAME ='../anotherfolder/db.db'(位於c:\ anotherfolder \和項目位於c:\ mydjangoproject)

+0

就是這樣。謝謝。 – 2009-11-26 22:14:05

0

一個猜測是,該文件其實並沒有在該目錄。如果您啓用了UAC,Windows 7將使其看起來像文件位於該位置(它將顯示在Windows資源管理器中)。但是,該文件實際存儲在c:\ users \ yourusername \ AppData \ Local \ VirtualStore \ Software \ Sqlite \ databases或類似位置。

+0

謝謝。它肯定是在C:\ Software \ Sqlite \目錄中 – 2009-11-26 22:09:31

0

看看文件夾的權限。你的普通用戶能在那裏編輯文件嗎?

9

我知道這個問題已經被接受的答案,但我想你錯過了什麼。您應該使用原始字符串時,你的字符串包含反斜槓:

DATABASE_NAME = r'C:\Software\Sqlite\databases\blog.db' 

這是,如果你不使用原始字符串會發生什麼:

>>> print 'C:\Software\Sqlite\databases\blog.db' 
C:\Software\Sqlite\databaselog.db 
0

反向斜線在DATABASE_NAME: 從C:\Software\Sqlite\databases\blog.dbC:/Software/Sqlite/databases/blog.db

我在Win7上使用django 1.4,這是我的解決方案 - 文件不需要已經存在

0

在數據庫名稱中反斜槓解決了我的問題。