API Gwibbera zwraca błąd

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
Awatar użytkownika
r9s
Piegowaty Guziec
Piegowaty Guziec
Posty: 5
Rejestracja: 20 lis 2010, 12:04
Płeć: Mężczyzna
Wersja Ubuntu: 11.10
Środowisko graficzne: Unity
Architektura: x86_64
Kontakt:

API Gwibbera zwraca błąd

Post autor: r9s »

Próbuję użyć funkcji Gwibbera ze źródeł:

Kod: Zaznacz cały

#!/usr/bin/python
"""
Returns a list of services available as json string
"""

import json, gwibber.lib
gw = gwibber.lib.GwibberPublic()
accounts = json.loads(gw.GetAccounts())

print accounts
Ale niestety dostaję błąd:

Kod: Zaznacz cały

$ ./get_accounts.py 
Traceback (most recent call last):
  File "./get_accounts.py", line 7, in <module>
    gw = gwibber.lib.GwibberPublic()
  File "/usr/lib/python2.6/gwibber/lib/__init__.py", line 12, in __init__
    self.accounts = self.getbus("Accounts")
  File "/usr/lib/python2.6/gwibber/lib/__init__.py", line 20, in getbus
    follow_name_owner_changes=True)
  File "/usr/lib/pymodules/python2.6/dbus/bus.py", line 226, in get_object
    self._require_main_loop()   # we don't get the signals otherwise
RuntimeError: To make asynchronous calls, receive signals or export objects, D-Bus connections must be attached to a main loop by passing mainloop=... to the constructor or calling dbus.set_default_main_loop(...)
Nie rozumiem co jest źle. Ktoś mógłby mi wytłumaczyć?

EDIT:
Ok, poradziłem sobie z pomocą blackfire:

Kod: Zaznacz cały

#!/usr/bin/python
"""
Returns a list of services available as json string
"""

from dbus.mainloop.glib import DBusGMainLoop
import gobject

import json, gwibber.lib

DBusGMainLoop(set_as_default=True)
loop = gobject.MainLoop()

gw = gwibber.lib.GwibberPublic()
accounts = json.loads(gw.GetAccounts())

print accounts

loop.run()
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 7 gości