【发布时间】:2023-03-25 15:46:01
【问题描述】:
我意识到这个问题之前曾被问过 (What's the best practice using a settings file in Python?),但鉴于 7 年前有人问过这个问题,我觉得有必要再次讨论一下技术是如何发展的。
我有一个 python 项目,它需要根据环境变量的值使用不同的配置。由于使用环境变量选择配置文件很简单,所以我的问题如下:
当需要根据环境进行多种配置时,什么格式被视为软件行业中在 python 中设置配置文件的最佳实践?
我意识到 python 带有一个 ConfigParser 模块,但我想知道使用 YAML 或 JSON 等格式是否会更好,因为它们易于跨语言使用而越来越受欢迎。当您有多种配置时,哪种格式更容易维护?
【问题讨论】:
-
您提到的问题在几个月前被关闭,因为它过于宽泛。您的版本似乎更广泛。
-
此外,似乎在该问题关闭前几个小时对该问题进行了全面清理——所有过时的答案都已删除,并编辑了其他答案之一以提供有关 YAML 的更新信息 (并且此后再次更新)。
-
同时,JSON 的相对“流行度”确实无关紧要。问题是您的实际用户对您的实际应用程序最熟悉或最有用的是什么。 INI/rc 格式、可执行 Python 代码、JSON 等都有明显的优点和缺点。如果有一个答案是所有可能用途的最佳答案,那么我们今天不会有比我们更多的竞争方式来做到这一点十年前,我们都会使用一个。 (尽管至少我们不再经常使用“具有隐式但未定义模式的非常复杂的 XML 语言”……)
-
公平地说,我会调整我的问题以尝试降低价值。诚然,它们是每种格式的优势,但软件行业内肯定必须对所谓的“最佳实践”达成某种共识。归根结底,这是一个非常微不足道的设计决定,必须做出,但我想找到行业内的共同共识或某些工作空间内的基本原则。
-
嗯,“至少在某些工作区”正是问题所在。不同的工作空间有不同的答案。部分是由他们使用的技术驱动的(Django 商店更有可能拥有可执行的配置,混合大量 Python 和 Ruby 以拥有 YAML 的多语言商店等),但它也受到他们应用程序的特定需求的驱动/用户。而且这些考虑都没有一个适用于整个“行业”的普遍答案。这就是为什么仍然有这么多“行业标准”的原因。
标签: python json configuration yaml