在Windows 7上如何将SQLITE与DJANGO一起使用
我正在按照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
为了测试,我还给每个人都添加了完全的权限。
但是正如我所说,我遇到了以下错误:
sqlite3.OperationalError: unable to open database file
任何帮助都非常感谢,
安德鲁
6 个回答
0
我猜这个文件其实并不在你想的那个文件夹里。如果你开启了用户账户控制(UAC),那么在Windows 7中,它会让你觉得文件在那个位置(在文件资源管理器中会显示出来)。但实际上,这个文件是存储在c:\users\你的用户名\AppData\Local\VirtualStore\Software\Sqlite\databases或者类似的地方。
10
我知道这个问题已经有了一个被接受的答案,但我觉得你们可能漏掉了一些东西。当你的字符串里面有反斜杠时,应该使用原始字符串。
DATABASE_NAME = r'C:\Software\Sqlite\databases\blog.db'
如果你不使用原始字符串,会发生这样的事情:
>>> print 'C:\Software\Sqlite\databases\blog.db'
C:\Software\Sqlite\databaselog.db
2
我觉得你不能用完整的Windows路径来访问你的sqlite数据库。我在这里做了一些测试,发现如果想在Django项目中使用不在同一目录下的sqlite3数据库,唯一的方法就是用这样的写法:DATABASE_NAME = '../anotherfolder/db.db'(这个数据库文件在c:\anotherfolder\,而项目则在c:\mydjangoproject)。