如何在Windows 7上使用DJANGO的SQLITE

我正在关注DJango网站上的教程,我预先使用Windows XP并且一切正常,但在Windows 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 

我也为testing目的添加了所有人的完整权限。

但正如我所说,我得到以下错误:

 sqlite3.OperationalError: unable to open database file 

任何帮助表示赞赏,

安德鲁

我不认为你可以使用完整的Windows路径来访问您的SQLite数据库。 我在这里运行了一些测试,我只能在django上使用sqlite3数据库,而不是使用DATABASE_NAME ='../anotherfolder/db.db'(这是位于c:\ anotherfolder \和项目位于c:\ mydjangoproject)

我知道这个问题已经被接受了,但是我想你错过了一些东西。 当你的字符串包含反斜杠时,你应该使用原始字符串:

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

这是如果你不使用一个原始字符串会发生什么:

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

猜测是该文件实际上不在该目录中。 如果你有UAC启用的Windows 7将使它看起来像文件是在该位置(它会显示在Windows资源管理器中)。 但是,该文件实际上存储在c:\ users \ yourusername \ AppData \ Local \ VirtualStore \ Software \ Sqlite \ databases或类似的位置。

看看文件夹的权限。 你的普通用户能在那里编辑文件吗?

反转DATABASE_NAME中的斜杠:从C:\Software\Sqlite\databases\blog.dbC:/Software/Sqlite/databases/blog.db

我在Win7上使用django 1.4,这是我的解决方案 – 文件不需要已经存在

在数据库名称中反斜杠解决了我的问题。