【发布时间】:2021-06-20 07:31:58
【问题描述】:
我正在编写一个 Python CLI 应用程序并希望将其打包。我需要应用程序有一个适用于整个“安装”的配置文件(即无论用户从哪里调用我的 CLI 应用程序,它都需要读取此配置文件)。
如果我可以避免的话,我希望它位于包安装目录中,而不仅仅是文件系统上的某个任意位置。这样做的简单方法是什么?
【问题讨论】:
-
要很好地理解您的问题:它是仅用于 安装 的配置文件(您已将该词放在引号中),还是应该在每次使用时使用的配置文件执行您的应用程序?在哪个平台上?
-
对不起,我的意思是它是一个配置文件,应该在应用程序的每次执行时使用。在 Linux (Debian/Ubuntu) 上。我主要想区分一种系统范围的配置文件(我想要的)和每个用户的配置文件。
-
非常好的问题。可以肯定的是,配置应该是可编辑的,对吧?
-
我以两种不同的方式做了类似的事情。选项 1 是传入 config.ini 文件的路径。另一个是读取默认值并能够使用 CLI 参数来覆盖单个值。
-
我的应用程序中通常有 4 个级别的配置。 1) 默认值,它是一个 .ini 文件,它是包的一部分,2) user.ini,(或 site.ini,在这种情况下),它使用 default.ini 初始化,然后可以通过以下方式更改用户,3) 遵循模式
MY_CLI_APP_BASIC_FOO=1的环境变量,以模仿我帖子中的设置,以及 4) 调用应用程序时的选项,例如$ my-cli-app --basic-foo 1 sub-command