OperationalError:(OperationalError)无法打开数据库文件无无

时间:2011-09-04 22:52:07

标签: python sqlite terminal sqlalchemy

尝试使用SQLAlchemy格式化数据库,但是当我在元数据上运行create_all时,出现上述错误。我使用以下路径为用户Tyre77创建了引擎:

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

我已经走了过去,那条路上有一个'database.db'文件,但也许我打错了?

4 个答案:

答案 0 :(得分:36)

你提到它是OS X上用户tyre77的路径,所以不应该是sqlite:////Users/tyre77/OmniCloud/database.db吗?

此外,相对路径有三个斜杠,绝对路径有四个。

答案 1 :(得分:3)

我在Windows 8.1中遇到了同样的问题。 基于sqlalchemy文档:

sqlite:////db_absolute_path

sqlite:///db_relative_path

(注意上面的第二行只有3个斜杠) 在我的情况下,提供相对路径有帮助。

答案 2 :(得分:1)

在阅读sqlite urls here上的文档后,我确定你有正确数量的斜杠。显然,它使用相同的解析器来拉出作为远程连接引擎的路径,因此在第二个和第三个斜杠之间的“服务器名称”留空。

如果您想指定绝对路径,那么您将以正确的方式进行操作。检查以确保您提供绝对路径。三个斜杠可能能够指定相对路径,但您需要知道应用程序的当前工作目录,这可能会在您延迟应用程序时中断。

答案 3 :(得分:-3)

我通过将正斜杠(“ sqlite:///”)的数量从4个减至3个来解决了该错误