Se eu quiser que meu aplicativo armazene algumas configurações que persistem quando um aplicativo é fechado, onde devo armazená-las?
Não estou falando de nada complicado: dois booleanos e uma string (embora no futuro eu queira armazenar configurações mais complexas)
Eu ouvi gconf, dconf, gsettings, etc, todos mencionados. Qual é o método "preferido"? De preferência um que seja agradável e fácil em Python.
Respostas:
gconf
está obsoleta, portanto, para um novo projeto, eu não o usaria.dconf
é um back-end para armazenar as configurações, como desenvolvedor de aplicativos você normalmente não precisa se preocupar com isso.O que você parece precisar é de
gsettings
uma API de alto nível ( documentação da API para C ) para armazenar / recuperar configurações sem incomodar como / onde elas estão realmente armazenadas.gsettings
faz parte dogio
, que é um dos principais pacotes do gnome (likeglib
egobject
). Esta postagem do blog fornece uma breve introdução sobre como usá-lo com o Python.Se você não deseja nenhuma dependência
gio
(por exemplo, não está desenvolvendo um aplicativo GNOME) e deseja armazenar arquivos de configuração simples, sugiro usar o$HOME/.config
diretório (ou qualquer diretório definido por$XDG_CONFIG_DIRS
) em vez de$HOME/.your_appname
, de acordo com a especificação freedesktop .fonte
Aplicativo executa todo o sistema
o local apropriado para armazenar as configurações seria:
onde um subdiretório é opcional.
O aplicativo é executado no modo por usuário
As configurações devem ser armazenadas no HOME do usuário, de preferência em um diretório oculto:
Veja também o Debian FHS .
Aplicativos em execução no X-Desktop
Os aplicativos para o X-Desktop (por exemplo, GNOME, KDE, Unity, Xfce) devem consultar a Especificação do diretório base do XDG onde os seguintes locais de arquivos são definidos nas variáveis locais:
fonte
Rapidamente , que é um dos mais novos auxiliares no desenvolvimento de aplicativos para o Ubuntu , o padrão é armazenar todas as preferências com o desktopcouch . A vantagem é que essas configurações podem ser sincronizadas com outras instalações através das ferramentas Ubuntu One.
fonte