Где сохранить пользовательские настройки для приложения?

Если я хочу, чтобы мое приложение сохранило несколько настроек, которые сохраняются, когда приложение закрывается, то, где я должен сохранить их?

Я не говорю ничто сложное: две булевские переменные и строка (хотя в будущем я мог бы хотеть сохранить более сложные настройки),

Я услышал gconf, dconf, gsettings, и т.д. все упомянутые. Каков "предпочтительный" метод? Предпочтительно один это хорошо и легко в Python.

12
задан 3 September 2011 в 02:43

3 ответа

gconf удерживается от использования, таким образом, для нового проекта я не использовал бы его. dconf бэкенд для хранения настроек, как разработчик приложений, которого Вам не придется обычно беспокоить им.

То, в чем Вы, кажется, нуждаетесь, gsettings, высокоуровневый API (документация API для C) для хранившего/получения настроек, не беспокоясь, как/где они на самом деле хранятся. gsettings часть gio, который является одним из базовых пакетов гнома (как glib и gobject). Это сообщение в блоге дает краткое введение, как использовать его с Python.

Если Вы не хотите зависимостей от gio (например, Вы не разрабатываете приложение GNOME), и хотят сохранить простые файлы конфигурации, я предложил бы использовать $HOME/.config каталог (или безотносительно каталога, определенного $XDG_CONFIG_DIRS) вместо $HOME/.your_appname, в соответствии с freedesktop спецификацией.

9
ответ дан 23 November 2019 в 03:35

Выполнение приложения в масштабе всей системы

соответствующее место для хранения настроек было бы:

/etc/[application]/

где подкаталог является дополнительным.


Выполнение приложения в на непривилегированный режим

настройки должны быть сохранены в пользователе ДОМОЙ, предпочтительно в скрытом каталоге:

/home/<user>/<.application>/

См. также FHS Debian.


Приложения, работающие в X-рабочем-столе

Приложения для X-рабочего-стола (например, GNOME, KDE, Единица, Xfce) должны относиться к Спецификации Базового каталога XDG, где следующее расположение файлов определяется в локальных переменных:

  • $XDG_DATA_HOME определяет базовый каталог, относительно которого пользователя должны быть сохранены определенные файлы данных. Если $XDG_DATA_HOME или не установлен или не пуст, значение по умолчанию, равное $HOME/.local/share, должно использоваться.

  • $XDG_CONFIG_HOME определяет базовый каталог, относительно которого пользователя должны быть сохранены определенные конфигурационные файлы. Если $XDG_CONFIG_HOME или не установлен или не пуст, значение по умолчанию, равное $HOME/.config, должно использоваться.

  • $XDG_DATA_DIRS определяет предпочтительное упорядоченное множество базовых каталогов для поиска файлов данных в дополнение к базовому каталогу $XDG_DATA_HOME. Каталоги в $XDG_DATA_DIRS должны быть разделены с двоеточием ':'.

  • If $XDG_DATA_DIRS или не установлен или не пуст, значение, равное/usr/local/share/:/usr/share/, должно использоваться.

  • $XDG_CONFIG_DIRS определяет предпочтительное упорядоченное множество базовых каталогов для поиска конфигурационных файлов в дополнение к базовому каталогу $XDG_CONFIG_HOME. Каталоги в $XDG_CONFIG_DIRS должны быть разделены с двоеточием ':'. Если $XDG_CONFIG_DIRS или не установлен или не пуст, значение, равное/etc/xdg, должно использоваться.

10
ответ дан 23 November 2019 в 03:35

Быстро, который является, один из более новых помощников для разработки приложений для Ubuntu, значений по умолчанию к хранению всех предпочтений с desktopcouch. Преимущество состоит в том, что те настройки могут синхронизироваться с другими установками с помощью Ubuntu инструменты.

1
ответ дан 23 November 2019 в 03:35

Другие вопросы по тегам:

Похожие вопросы: