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

2 投票
4 回答
2273 浏览
提问于 2025-04-16 22:10

有什么好的方法可以在不同的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包,并在不同的项目中导入它...

撰写回答