Jeśli chcę, aby moja aplikacja zapisała kilka ustawień, które są zachowywane po zamknięciu aplikacji, to gdzie mam je zapisać?
Nie mówię nic skomplikowanego: dwa booleany i ciąg znaków (chociaż w przyszłości mógłbym chcieć przechowywać bardziej złożone ustawienia)
Słyszałem, że wspomniane są gconf, dconf, gsettings itp. Jaka jest „preferowana” metoda? Najlepiej taki, który jest miły i łatwy w Pythonie.
Odpowiedzi:
gconf
jest przestarzałe, więc nie użyłbym go w nowym projekcie.dconf
jest backendem do przechowywania ustawień, jako twórca aplikacji zwykle nie powinieneś się tym przejmować.Wydaje się, że potrzebujesz
gsettings
wysokopoziomowego interfejsu API ( dokumentacja API dla C ) do przechowywania / pobierania ustawień bez zadawania sobie trudu, w jaki sposób / gdzie są one faktycznie przechowywane.gsettings
jest częściągio
, która jest jednym z podstawowych pakietów gnome (jakglib
igobject
). Ten post na blogu zawiera krótkie wprowadzenie na temat używania go w Pythonie.Jeśli nie chcesz żadnych zależności
gio
(np. Nie tworzysz aplikacji GNOME) i chcesz przechowywać proste pliki konfiguracyjne, sugeruję użycie$HOME/.config
katalogu (lub innego zdefiniowanego przez$XDG_CONFIG_DIRS
) katalogu zamiast$HOME/.your_appname
, zgodnie ze specyfikacją Freedesktop .źródło
Aplikacja działa w całym systemie
odpowiednie miejsce do przechowywania ustawień to:
gdzie podkatalog jest opcjonalny.
Aplikacja działa w trybie użytkownika
ustawienia powinny być przechowywane w DOMU użytkownika, najlepiej w ukrytym katalogu:
Zobacz także Debian FHS .
Aplikacje działające w X-Desktop
Aplikacje na X-Desktop (np. GNOME, KDE, Unity, Xfce) powinny odnosić się do specyfikacji katalogu podstawowego XDG, w której następujące lokalizacje plików są zdefiniowane w zmiennych lokalnych:
źródło
Szybko , który jest jednym z nowszych pomocników w tworzeniu aplikacji dla Ubuntu , domyślnie przechowuje wszystkie preferencje za pomocą Desktopcouch . Zaletą jest to, że ustawienia te można synchronizować z innymi instalacjami za pomocą narzędzi Ubuntu One.
źródło