Я пытаюсь использовать этот простой пример в python:
>>> from desktopcouch.records.server import CouchDatabase
>>> from desktopcouch.records.record import Record
>>> db = CouchDatabase('testing', create=True)
>>>
Но работает только в учетной записи root с обычным пользователем:
>>> from desktopcouch.records.server import CouchDatabase
>>> from desktopcouch.records.record import Record
>>> db = CouchDatabase('testing', create=True)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/pymodules/python2.7/desktopcouch/application/server.py", line 101, in __init__
oauth_tokens=oauth_tokens, ctx=ctx)
File "/usr/lib/pymodules/python2.7/desktopcouch/application/server.py", line 75, in __init__
oauth_tokens=oauth_tokens, ctx=ctx, views_factory=views_factory)
File "/usr/lib/pymodules/python2.7/desktopcouch/records/database.py", line 123, in __init__
self._reconnect()
File "/usr/lib/pymodules/python2.7/desktopcouch/application/server.py", line 81, in _reconnect
port = find_port(ctx=self.ctx)
File "/usr/lib/pymodules/python2.7/desktopcouch/application/platform/__init__.py", line 48, in find_port
return platform_find_port(pid, ctx)
File "/usr/lib/pymodules/python2.7/desktopcouch/application/platform/linux/__init__.py", line 100, in platform_find_port
proxy = bus.get_object('org.desktopcouch.CouchDB', '/')
File "/usr/lib/python2.7/dist-packages/dbus/bus.py", line 241, in get_object
follow_name_owner_changes=follow_name_owner_changes)
File "/usr/lib/python2.7/dist-packages/dbus/proxies.py", line 248, in __init__
self._named_service = conn.activate_name_owner(bus_name)
File "/usr/lib/python2.7/dist-packages/dbus/bus.py", line 180, in activate_name_owner
self.start_service_by_name(bus_name)
File "/usr/lib/python2.7/dist-packages/dbus/bus.py", line 278, in start_service_by_name
'su', (bus_name, flags)))
File "/usr/lib/python2.7/dist-packages/dbus/connection.py", line 651, in call_blocking
message, timeout)
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NoReply: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken
Какую версию Ubuntu вы используете? Только возможность запуска desktopcouch от имени root звучит так: 1-строчное исправление конфигурации «uri_file =» для совместимости с CouchDB 1.1.1
Я предложил исправление, но похоже была некоторая проблема с юнит-тестами (я не думаю, что это связано с моим исправлением).
В любом случае, desktopcouch теперь не поддерживается, и я рекомендую не создавать на нем какое-либо новое программное обеспечение. Если вы заинтересованы в синхронизации Ubuntu как службы, посмотрите на U1DB , замену Canonical для desktopcouch.
Если вы заинтересованы в использовании CouchDB в настольных приложениях, обратите внимание на UserCouch и Microfiber (отказ от ответственности: я являюсь автором и сопровождающим обоих). Они оба были разработаны в рамках проекта Novacut. Изначально мы использовали desktopcouch, но с тех пор ушли от него.