我想尝试/尝试非关系数据库,最好的解决方案是:

  • 便携式,这意味着它不需要安装。理想情况下,只需将目录复制粘贴到某个地方即可使其工作。我不介意第一次使用时是否需要编辑一些配置文件或运行配置工具。
  • 可从 python 访问
  • 适用于 Windows 和 Linux

你能为我推荐什么?

本质上,我希望能够在共享 Linux 服务器上安装这个系统,而我在该服务器上几乎没有用户权限。

有帮助吗?

解决方案

我建议你考虑 伯克利数据库 具有对许可问题的认识。

我已经厌倦了人们在没有资格的情况下推荐 BerkleyDB - 你只能在 GPL 下分发 BDB 系统,或者从 Oracle 支付一些未知且不公开的许可费用。

对于“本地”在外部各方不使用的地方进行游戏,这可能是一个好主意。请注意,有一个许可证正在等着咬你。

这也提醒我们,在寻求技术建议时最好说明 GPL 是否可以接受。

我自己的问题 关于便携式 C API 数据库,虽然建议了一系列其他产品,但没有一个嵌入式产品具有 Python 绑定。

其他提示

元工具包 是一个有趣的非关系型嵌入式数据库,支持Python。

安装只需复制单个共享库和 .py 文件。它适用于 Windows、Linux 和 Mac,并且是开源的(MIT 许可)。

如果您习惯于认为关系数据库必须像 PostgreSQL 或 MySQL 这样又大又重,那么您会对 SQLite 感到惊喜。

它是关系型的,非常小,使用单个文件,具有 Python 绑定,不需要额外的权限,并且可以在 Linux、Windows 和许多其他平台上运行。

你看过吗 沙发数据库?它是非关系型的,可以相对轻松地迁移数据,并且具有以下形式的 Python API couchdb-python. 。它确实有一些相当不寻常的依赖关系,其形式为 蜘蛛猴埃尔兰 尽管。

至于纯Python的解决方案,我不知道还有多远 PyDBLite 已经来了,但仍然值得一看。

伯克利数据库:(似乎有一个 API 绑定到 python : http://www.jcea.es/programacion/pybsddb.htm)

你看过吗 Zope 对象数据库?

还, SQL炼金术 或者 Django 的 ORM 层使得 SQLite 上的模式管理几乎透明。


编辑

从...开始 http://www.sqlalchemy.org/docs/05/ormtutorial.html#define-and-create-a-table了解如何创建 SQL 表以及它们如何映射到 Python 对象。

虽然您的问题很模糊,但您的评论似乎表明您可能希望首先定义 Python 对象,让它们工作,然后通过 SQLAlchemy 将它们映射到关系模式对象。

如果你只是从 Python 来来去去,你可能会考虑使用 泡菜 序列化对象。当然,如果您想使用其他工具来访问相同的数据,那么这是行不通的。它内置于 python 中,因此您不应该遇到任何特权问题,但它不是真正的数据库,因此它可能不适合您的实验需求。

此处添加对 TinyDB 的引用,因为此页面显示在许多搜索的顶部。它是Python中的一个可移植的非关系数据库。它将 python 字典存储到本地 json 文件中,并使它们可用于类似于 mongodb 的数据库操作。它还具有移植到 mongodb 命令的扩展,不同之处在于,您将在本地 json 文件上操作,而不是在另一个系统服务器上工作。

与目前选择的答案不同,它受到 MIT 宽松的开放许可证的约束。

链接:

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top