在Python项目间共享设置\常量
有什么好的方法可以在不同的Python项目之间共享配置参数、设置和常量吗?
用数据库似乎有点过于复杂。用文件的话,又会出现哪个项目应该把这个文件放在它的源代码管理里这个问题……
我很乐意听听大家的建议 :)
更新:
为了更清楚地说明 - 假设这些不同的项目在不同的系统上以不同的方式部署。有的项目在不同的目录下,有的项目有,有的项目没有。
4 个回答
3
你为什么不直接创建一个叫做 constants.py 的文件,然后在里面写上 CONSTANT = 值呢?
5
我发现,在很多情况下,使用配置文件真的很值得花点小功夫。Python自带的 ConfigParser
模块非常好用,特别是它可以很轻松地处理多个文件,并把它们合并在一起。后面解析的文件中的值会覆盖前面解析的文件中的值。这让我们可以方便地使用一个全局配置文件(比如 /etc/yoursoftware/main.ini)和一个用户专属的配置文件(比如 ~/.yoursoftware/main.ini)。
这样,你的每个项目就可以打开配置文件并从中读取值。
下面是一个简单的代码示例:
basefile.ini:
[sect1]
value1=1
value2=2
overridingfile.ini:
[sect1]
value1=3
configread.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
3
创建一个Python包,并在不同的项目中导入它...