为CouchDB设置Python ViewServer

时间:2013-03-17 02:51:17

标签: python macos couchdb

我正在尝试使用CouchDB加快速度。作为Python上一个相对较新的用户,我正在尝试设置一个视图服务器,以便我可以将python函数传递给couchdb.design.ViewDefinitions函数。据我了解,ViewDefinitions采用javascript代码来执行map / reduce函数。

这是我难以理解的 - 我很清楚这可能是一个基本问题。根据维基(http://wiki.apache.org/couchdb/View_server):

要使用CouchDB注册查询服务器,请为local.ini添加每个服务器的一行。基本语法是: '[query_servers] python = / usr / bin / couchpy'

如何访问local.ini文件?我是10.6.8 Mac用户。谢谢!

更新:谢谢Kxepal。我似乎能够在Python中创建Futon的设计/视图。或者,我认为可以按如下方式创建python viewserver: curl -X PUT http:// [localhost] / _config / query_servers / python'“/ path / to / couchpy”'

但是,我仍然无法执行python脚本。在Couch上运行视图会导致以下结果: '错误:访问视图无响应时发生错误'

如果有人能指出正确的方向,我将不胜感激。谢谢!

2 个答案:

答案 0 :(得分:4)

我遇到了相同的“错误:访问视图无响应时出错”问题,结果证明这是我的python代码中的一个错误。具体来说,在javascript实现中我有类似的东西:

function (doc) {    
    emit(doc.somefield, doc);
}

我已将此转换为:

def map(doc):
    yield doc.somefield, doc

但是,这给了我描述的“无响应”错误。

将其更改为以下内容解决了问题。

def map(doc):
        yield doc['somefield'], doc

答案 1 :(得分:2)

我不知道OSX会保留CouchDB配置文件,但您始终可以通过Futon设置Python查询服务器。在侧栏上单击“配置”,然后单击页面底部的“添加部分”,并使用您计划写入local.ini的相同数据填充字段。作为奖励,您不需要重新启动CouchDB - 通过HTTP API进行的配置更改会立即应用,但请确保您指定了正确的值。