Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python处理配置的最佳方法_Python - Fatal编程技术网

Python处理配置的最佳方法

Python处理配置的最佳方法,python,Python,在管理配置文件并能够在运行控制盘文件之前覆盖任何配置方面,Python的最佳实践是什么 在我们的项目中,大约有数百个路径(如folder1/folder2/filename.csv)配置以以下方式存储: class PathsConfig(object): SOME_PATH = os.environ.get('SOME_PATH', 'folder1/folder2/filename.csv') ... 这种方法(env变量)的动机是能够在启动wheel文件之前覆盖任何路径(对

在管理配置文件并能够在运行控制盘文件之前覆盖任何配置方面,Python的最佳实践是什么

在我们的项目中,大约有数百个路径(如
folder1/folder2/filename.csv
)配置以以下方式存储:

class PathsConfig(object):

  SOME_PATH = os.environ.get('SOME_PATH', 'folder1/folder2/filename.csv')  
  ...
这种方法(env变量)的动机是能够在启动wheel文件之前覆盖任何路径(对QA团队很重要)

最近,我和同事们就这种方法是否有效展开了一场辩论。至于我,它不是,因为这个路径对于所有环境(开发、质量保证、产品)都是通用的,并且不敏感。对我来说,这些路径应该存储在config/yml文件中。我说得对吗


另外,我已经找到了lib,但它看起来不太流行,在GitHub上只有5个start。

您的问题似乎归结为“配置应该在环境中还是在yaml/json/…”,对吗?这些设置是特定于部署的,例如,它们现在是相同的还是始终相同(例如,因为文件是作为安装的一部分添加的)?此外,此应用程序是否仅由“您”(开发人员、公司……)或“其他人”(用户、客户……)使用?@MisterMiyagi better“环境无关配置是否应在yaml/json中?如果是,应使用哪个库以及如何覆盖车轮文件?”@MisterMiyagi这些路径始终相同,除了QA团队希望用Python覆盖它们之外notebooks@MisterMiyagi此应用程序仅由公司(开发者、QA)使用,因此您的论点是这些设置不是配置,因为它们不需要更改(除非更改),因此不需要通过环境变量进行处理?但是yaml是环境变量的一个(弱)替代品,而非配置应该存储为代码——这正是您的snipped已经在做的事情。因此,代码似乎已经遵循了建议:非配置(默认值)存储在代码中,配置(覆盖)存储在环境变量中。