应用程序的用户设置存储在哪里?

应用程序的用户设置存储在哪里?

如果我希望我的应用程序存储一些设置,当应用程序关闭时这些设置仍然保留,那么我应该将它们存储在哪里?

我说的并不复杂:两个布尔值和一个字符串(尽管将来我可能想要存储更复杂的设置)

我听说过 gconf、dconf、gsettings 等。什么是“首选”方法?最好是在 Python 中简单易用的方法。

答案1

应用程序在整个系统范围内运行

存储设置的适当位置是:

/etc/[application]/

其中子目录是可选的。


应用程序运行在每个用户模式

设置应该存储在用户主目录中,最好是在隐藏目录中:

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

另请参阅Debian FHS


正在运行的应用程序X-桌面

X-Desktop 的应用程序(例如 GNOME、KDE、Unity、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 的值。

答案2

gconf已被弃用,因此对于新项目我不会使用它。dconf是用于存储设置的后端,作为应用程序开发人员,您通常不必为此烦恼。

你似乎需要的是gsettings,一个高级 API(C 的 API 文档) 来存储/检索设置,而不必担心它们实际存储的方式/位置。gsettings是 的一部分gio,它是 gnome 的核心软件包之一(如glibgobject)。这博客文章简单介绍了如何与 Python 一起使用它。

如果你不想有任何依赖gio(例如你没有开发 GNOME 应用程序)并且想要存储简单的配置文件,我建议使用目录$HOME/.config(或由 定义的任何目录$XDG_CONFIG_DIRS)而不是$HOME/.your_appname,以符合freedesktop 规格

答案3

迅速地,这是Ubuntu 应用程序开发,默认存储所有偏好设置桌面沙发. 优点是这些设置可以通过 Ubuntu One 工具与其他安装同步。

相关内容