操作错误:无法打开数据库文件 None None

25 投票
3 回答
23128 浏览
提问于 2025-04-17 01:26

我在用SQLAlchemy格式化数据库的时候,运行create_all命令时遇到了错误。为了用户Tyre77,我是用下面这个路径创建的引擎:

engine = create_engine('sqlite:////tyre77/OmniCloud/database.db')

我检查过了,那个路径下确实有一个叫'database.db'的文件,但我可能输入错了路径?

3 个回答

1

在阅读了关于sqlite网址的文档后,我发现你使用的斜杠数量是正确的。显然,它使用相同的解析器来提取路径,就像远程连接的引擎一样,所以在第二个和第三个斜杠之间的“服务器名称”是留空的。

如果你想指定一个绝对路径,你的做法是对的。确保你提供的是绝对路径。三个斜杠可能可以指定一个相对路径,但你需要知道你应用程序的当前工作目录,这在你延迟应用程序时可能会出问题。

7

我在Windows 8.1上也遇到了同样的问题。根据sqlalchemy的说明:

sqlite:////db_absolute_path

sqlite:///db_relative_path

(注意上面第二行只有3个斜杠)在我的情况下,使用相对路径解决了这个问题。

47

你提到这是OS X系统上用户tyre77的路径,那这个路径不应该是sqlite:////Users/tyre77/OmniCloud/database.db吗?

另外,相对路径用三个斜杠,绝对路径用四个斜杠。

撰写回答