python单个配置文件

Joã*_*ela 22 python configuration-files

我正在开发一个项目,需要一个配置文件,其数据由多个模块使用.
我的问题是:通用方法是什么?我应该从每个模块(文件)中读取配置文件还是有其他方法可以做到这一点?

我想有一个名为config.py的模块,它读取配置文件,每当我需要配置时,我会import config做一些事情,比如config.data['teamsdir']获取'teamsdir'属性(例如).

响应:选择conf.py方法,因为它是模块化的,灵活的和简单的

我可以直接将配置数据放在文件中,后者如果我想从json文件读取一个xml文件或多个源我只需更改conf.py并确保以相同的方式访问数据.

接受答案:选择"Alex Martelli"的回应是因为它是最完整的.投票给其他答案,因为它们也很好,也很有用.

Ale*_*lli 10

我喜欢单个config.py模块的方法,它的主体(首次导入时)解析一个或多个配置数据文件并适当地设置自己的"全局变量" - 尽管我更喜欢config.teamdata圆周config.data['teamdata']方法.

这是假设的配置设置为只读加载一次(也许除了在单元测试场景,其中测试码会做它自己的人工环境config变量恰当地执行代码下测试) -它基本上利用了自然一个模块作为"单例"的最简单的Pythonic形式(当你不需要子类或其他只由类而不是模块支持的特性时,当然).

"一个或多个"配置文件(例如,/etc用于一般默认设置的第一个,然后/usr/local用于其特定于站点的覆盖的一个,然后可能在用户的主目录中用于用户特定设置的一个)是常见且有用的模式.