Если я хочу, чтобы мое приложение сохранило несколько настроек, которые сохраняются, когда приложение закрывается, то, где я должен сохранить их?
Я не говорю ничто сложное: две булевские переменные и строка (хотя в будущем я мог бы хотеть сохранить более сложные настройки),
Я услышал gconf, dconf, gsettings, и т.д. все упомянутые. Каков "предпочтительный" метод? Предпочтительно один это хорошо и легко в Python.
gconf
удерживается от использования, таким образом, для нового проекта я не использовал бы его. dconf
бэкенд для хранения настроек, как разработчик приложений, которого Вам не придется обычно беспокоить им.
То, в чем Вы, кажется, нуждаетесь, gsettings
, высокоуровневый API (документация API для C) для хранившего/получения настроек, не беспокоясь, как/где они на самом деле хранятся. gsettings
часть gio
, который является одним из базовых пакетов гнома (как glib
и gobject
). Это сообщение в блоге дает краткое введение, как использовать его с Python.
Если Вы не хотите зависимостей от gio
(например, Вы не разрабатываете приложение GNOME), и хотят сохранить простые файлы конфигурации, я предложил бы использовать $HOME/.config
каталог (или безотносительно каталога, определенного $XDG_CONFIG_DIRS
) вместо $HOME/.your_appname
, в соответствии с freedesktop спецификацией.
соответствующее место для хранения настроек было бы:
/etc/[application]/
где подкаталог является дополнительным.
настройки должны быть сохранены в пользователе ДОМОЙ, предпочтительно в скрытом каталоге:
/home/<user>/<.application>/
См. также FHS Debian.
Приложения для 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, должно использоваться.
Быстро, который является, один из более новых помощников для разработки приложений для Ubuntu, значений по умолчанию к хранению всех предпочтений с desktopcouch. Преимущество состоит в том, что те настройки могут синхронизироваться с другими установками с помощью Ubuntu инструменты.