在 Python 中的不同项目之间共享配置参数\设置\常量的巧妙方法是什么?
使用数据库似乎有点矫枉过正。使用文件会引发一个问题,即哪个项目应该在其源代码管理中托管该文件...
我愿意接受建议:)
更新:
为了澄清 - 假设各种项目在不同系统上的部署方式不同。在某些情况下,在不同的目录中,在其他情况下,一些项目存在而另一些不存在。
请您参考如下方法:
我发现在很多情况下,使用配置文件确实值得(小)麻烦。内置的 ConfigParser 模块非常方便,尤其是解析多个文件并让模块将它们合并在一起非常容易,稍后解析的文件中的值会覆盖先前解析的文件中的值。这允许轻松使用全局文件(例如/etc/yoursoftware/main.ini)和每个用户文件(~/.yoursoftware/main.ini)。
然后您的每个项目都会打开配置文件并从中读取值。
这是一个小代码示例:
基础文件.ini:
[sect1]
value1=1
value2=2
覆盖文件.ini:
[sect1]
value1=3
配置读取.py:
#!/usr/bin/env python
from ConfigParser import ConfigParser
config = ConfigParser()
config.read(["basefile.ini", "overridingfile.ini"])
print config.get("sect1", "value1")
print config.get("sect1", "value2")
运行它会打印出:
3
2
