GIO (библиотека ввода-вывода GLib) имеет бэкэнд для GSettings, который использует ключевой файл.Из C вы можете создать экземпляр этого бэкэнда для принудительного использования ключевого файла вместо системного реестра, используя g_keyfile_settings_backend_new()
, а затем g_settings_new_with_backend()
.Тем не менее, чтобы сделать это, вы должны #define G_SETTINGS_ENABLE_BACKEND
в своем коде, так как публичный API бэкэнда нестабилен.
Я хотел бы сделать это из Python, используя PyGObject (просто чтобы быть понятным, так как этот терминсбивает с толку - это библиотека самоанализа GObject, которая поставляется с GTK 3, а не PyGObject, которая идет с PyGTK и GTK 2.) Я могу сделать
>>> from gi.repository import Gio
>>> 'SettingsBackend' in dir(Gio)
True
Однако в * нет функции, соответствующей g_keyfile_settings_backend_new()
1010 *.Если я попытаюсь создать экземпляр бэкэнда,
>>> Gio.SettingsBackend()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
MemoryError
Итак, есть ли у кого-нибудь указатели?Или, может быть, модуль Python не был скомпилирован с G_SETTINGS_ENABLE_BACKEND
, и мне не повезло?