在Python项目之间共享设置\常量

时间:2011-07-24 09:16:50

标签: python constants projects

在Python中各种项目之间共享配置参数\ settings \ constants的简洁方法是什么?

使用数据库似乎有点矫枉过正。使用文件提出了哪个项目应该在其源代码管理中托管文件的问题......

我愿意接受建议:)

更新
为了澄清 - 假设各种项目在不同系统上的部署方式不同。在某些情况下,在不同的目录中,在其他情况下,有些项目在那里,有些则没有。

4 个答案:

答案 0 :(得分:5)

我发现在许多情况下,使用配置文件确实值得(轻微)麻烦。内置的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

答案 1 :(得分:3)

创建一个Python包并将其导入各种项目......

答案 2 :(得分:3)

为什么不只有一个名为constants.py的文件,只有CONSTANT = value

答案 3 :(得分:2)

为什么数据库过度杀伤?您描述的是在位于不同物理系统上的不同项目之间共享数据,这些项目具有到每个项目目录的不同路径。哦,有时项目不在那里。我无法想象一种更好的通信方式。它只需要是一个表,如果它提供跨平台,计算机甚至网络所需的一致访问,那就几乎不会过度。

相关问题