我应该将哪个Python客户端库用于CouchdB?

Kir*_*ser 17 python couchdb

我开始尝试使用CouchDB,因为它看起来像是我们遇到的某些问题的完美解决方案.鉴于所有工作都将在一个没有遗留依赖关系的全新项目上,您建议使用哪个客户端库,为什么?

如果我们使用的操作系统有任何重叠,这将更容易.FreeBSD只在其ports集合中提供了py- simplecouchdb,但该库的项目网站表示要使用CouchDBKit.这些都没有Ubuntu,它只与CouchDB一起发布.由于这两个操作系统没有共同的库,我可能会从源代码安装一些东西(如果我有时间的话,希望能够将软件包提交给Ubuntu和FreeBSD人员).

对于那些感兴趣的人,我想使用CouchDB作为在各种服务之间传递的数据的方便的中间存储位置 - 考虑消息总线系统但不太正式.例如,我们有守护进程下载和解析网页,然后将有趣的位发送到其他守护进程以进行进一步处理.很多这些对象在运行时都是不明确的("这里有一些HTML,加上一组元数据,还有一些在其上运行的动作").而不是将其序列化为ad-hoc本地网络协议或将其粘贴在PostgreSQL中,我宁愿使用为此目的而设计的东西.我们目前正在使用NetWorkSpaces这个角色,但它几乎没有广泛的支持或CouchDB的用户社区.

man*_*del 5

我一直在使用couchdb-python取得了很大的成功,据我所知,desktopcouch的人在ubuntu中使用它.先决条件是非常基本的,你应该没有问题:

  • httplib2的
  • simplejson或cjson
  • 蟒蛇
  • CouchDB 0.9.x(早期版本或更高版本不太可能正常工作,因为接口仍在变化)

对我来说,一些优点是:

  • Pythonic接口.您可以使用数据库,就像它是一个字典.
  • 设计文档的界面.
  • CouchDB视图服务器,允许在Python中编写视图函数

它还提供了几个命令行工具:

  • couchdb-dump:写入CouchDB数据库的快照
  • couchdb-load:读取由couchdb-dump生成的MIME多部分文件,并将所有文档,附件和设计文档加载到CouchDB数据库中.
  • couchdb-replicate:可用作更新通知脚本,以在数据更改时触发数据库之间的复制.