Si quiero que mi aplicación almacene algunas configuraciones, que persisten cuando se cierra una aplicación, ¿dónde debo guardarlas?
No estoy hablando de nada complicado: dos booleanos y una cadena (aunque en el futuro podría querer almacenar configuraciones más complejas)
He escuchado gconf, dconf, gsettings, etc., todos mencionados. ¿Cuál es el método "preferido"? Preferiblemente uno que sea agradable y fácil en Python.
Respuestas:
gconf
está en desuso, por lo que para un nuevo proyecto no lo usaría.dconf
es un back-end para almacenar la configuración, como desarrollador de aplicaciones normalmente no debería tener que preocuparse por ello.Lo que parece necesitar es
gsettings
una API de alto nivel ( documentación de API para C ) para almacenar / recuperar configuraciones sin preocuparse de cómo / dónde se almacenan realmente.gsettings
es parte degio
, que es uno de los paquetes principales de gnome (comoglib
ygobject
). Esta publicación de blog ofrece una breve introducción sobre cómo usarlo con Python.Si no desea dependencias
gio
(por ejemplo, no está desarrollando una aplicación GNOME) y desea almacenar archivos de configuración simples, le sugiero que use el$HOME/.config
directorio (o cualquier directorio definido por$XDG_CONFIG_DIRS
) en lugar de$HOME/.your_appname
, en línea con la especificación de freedesktop .fuente
La aplicación se ejecuta en todo el sistema
El lugar apropiado para almacenar la configuración sería:
donde un subdirectorio es opcional.
Aplicación se ejecuta en un por usuario modo
la configuración debe almacenarse en el INICIO del usuario, preferiblemente en un directorio oculto:
Ver también el Debian FHS .
Aplicaciones que se ejecutan en X-Desktop
Las aplicaciones para el X-Desktop (por ejemplo, GNOME, KDE, Unity, Xfce) deben consultar la Especificación del directorio base de XDG donde las siguientes ubicaciones de archivos se definen en variables locales:
fuente
Rápidamente , que es uno de los nuevos ayudantes para el desarrollo de aplicaciones para Ubuntu , por defecto almacena todas las preferencias con DesktopCouch . La ventaja es que esas configuraciones se pueden sincronizar con otras instalaciones a través de las herramientas de Ubuntu One.
fuente