2013-03-17 3 views
2

Я пытаюсь ускорить работу с CouchDB. Являясь относительно новым пользователем на Python, я пытаюсь настроить сервер представлений, чтобы передать функции python функции couchdb.design.ViewDefinitions. Насколько я понимаю, ViewDefinitions принимает код javascript для выполнения функции map/reduce.Настройка Python ViewServer для CouchDB

Вот что я пытаюсь понять - я хорошо знаю, что это может быть основной вопрос. Согласно wiki (http://wiki.apache.org/couchdb/View_server):

Чтобы зарегистрировать серверы запросов с помощью CouchDB, добавьте строку для каждого сервера в local.ini. Основной синтаксис: '[query_servers] python =/usr/bin/couchpy'

Как получить доступ к файлу local.ini? Я - пользователь 10.6.8 Mac. Благодаря!

Обновление: Спасибо Kxepal. Кажется, мне удалось создать дизайн/представление на Futon в Python. Кроме того, я понял, что питон viewserver может быть создан следующим образом: локон -X PUT HTTP: // [локальный]/_config/query_servers/питон '/ путь/к/couchpy "'

Однако я до сих пор не могу выполнить скрипт python. Запуск представления в Couch приводит к следующему: 'Ошибка: произошла ошибка при доступе к виду без ответа'

Я был бы признателен, если бы кто-то мог указать в правильном направлении. Благодаря!

ответ

2

Я не знаю, что OSX хранит файлы конфигурации CouchDB, но вы всегда можете настроить сервер запросов Python через Futon. На боковой панели нажмите «Конфигурация», а не «Добавить раздел» внизу страницы и заполните поля теми же данными, которые вы планировали записать в local.ini. В качестве бонуса вам не нужно перезапускать CouchDB - изменения конфигурации через HTTP API применяются мгновенно, но убедитесь, что вы указали правильные значения.

4

Я столкнулся с той же ошибкой «Ошибка: ошибка при доступе к проблеме без ответа», и это оказалось ошибкой в ​​моем коде на Python. В частности, в яваскрипте реализации у меня был что-то вроде:

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

Я конвертировал это:

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

Однако это дало мне ошибку «нет ответа» вы описываете.

Измените его на следующие исправленные проблемы.

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