python desktopcouch работает только с учетной записью root
Я пытаюсь использовать этот простой пример в 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
1 ответ
Какую версию Ubuntu вы используете? Только возможность запуска desktopcouch от имени root звучит как эта ошибка: 1-строчное исправление конфигурации "uri_file =" для совместимости CouchDB 1.1.1
Я предложил исправление для него, но похоже, что была проблема с модульными тестами (я не думаю, что это связано с моим исправлением).
В любом случае, desktopcouch теперь не поддерживается, и я рекомендую не создавать на нем никакого нового программного обеспечения. Если вы заинтересованы в синхронизации Ubuntu как службы, посмотрите на U1DB, замену Canonical для desktopcouch.
Если вы заинтересованы в использовании CouchDB в настольных приложениях, посмотрите на UserCouch и Microfiber (отказ от ответственности: я автор и сопровождающий обоих). Они оба были разработаны в рамках проекта Novacut. Мы первоначально использовали desktopcouch, но с тех пор ушли от него.