web-dev-qa-db-ja.com

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
3
David Sedeño

どのバージョンのUbuntuを使用していますか? rootとしてのみdesktopcouchを起動できるのは、このバグのように聞こえます: 1-line "uri_file =" CouchDB 1.1.1互換性の構成修正

修正を提案しましたが、単体テストに問題があったようです(修正とは関係ないと思います)。

とにかく、desktopcouchは現在メンテナンスされていないので、その上に新しいソフトウェアを構築しないしないことをお勧めします。サービスとしてのUbuntu同期に興味がある場合は、Canonicalのdesktopcouchの代替品である 1DB をご覧ください。

デスクトップアプリでCouchDBを使用することに興味がある場合は、 serCouch および Microfiber を参照してください(免責事項:私は両方の作成者および保守者です)。これらは両方ともNovacutプロジェクトの一部として開発されました。もともとdesktopcouchを使用していましたが、その後移行しました。

3
jderose