812*_*128 12 python settings application-development
如果我希望我的应用程序存储一些设置,这些设置在应用程序关闭时仍然存在,那么我应该将它们存储在哪里?
我不是在谈论任何复杂的事情:两个布尔值和一个字符串(尽管将来我可能想要存储更复杂的设置)
我听说过 gconf、dconf、gsettings 等都提到过。什么是“首选”方法?最好是一个在 Python 中很好且容易的。
Tak*_*kat 10
存储设置的适当位置是:
/etc/[application]/
Run Code Online (Sandbox Code Playgroud)
其中子目录是可选的。
设置应存储在用户 HOME 中,最好在隐藏目录中:
/home/<user>/<.application>/
Run Code Online (Sandbox Code Playgroud)
另请参阅Debian FHS。
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 的值。
gconf已弃用,因此对于新项目,我不会使用它。dconf是用于存储设置的后端,作为应用程序开发人员,您通常不必理会它。
您似乎需要的是gsettings,一个高级 API(C 的 API 文档)来存储/检索设置,而无需担心它们的实际存储方式/位置。gsettings是 的一部分gio,它是 gnome 的核心包之一(如glib和gobject)。这篇博文简要介绍了如何在 Python 中使用它。
如果您不想要任何依赖gio(例如您不开发 GNOME 应用程序)并且想要存储简单的配置文件,我建议使用$HOME/.config目录(或由 定义的任何目录$XDG_CONFIG_DIRS)而不是$HOME/.your_appname,符合freedesktop 规范.
| 归档时间: |
|
| 查看次数: |
4634 次 |
| 最近记录: |