编译时的python配置

时间:2016-01-22 12:16:59

标签: python python-2.7

截至目前,我们有一个文件conf.py,用于存储服务的大部分配置变量。我们的代码与此类似:

environment = 'dev' # could be dev, local, staging, production
configa = 'something'
configb = 'something else'

if environment = 'dev':
    configa = 'something dev'

elif environment = 'local':
    configa = 'something local'

这是在python项目中管理配置文件的正确方法吗?这些配置是在编译时加载到变量中(在创建pyc文件时),还是每次在python脚本中导入conf时检查if条件,还是每次访问配置变量时都检查?

3 个答案:

答案 0 :(得分:2)

所有代码都在导入时运行。但是,由于您不太可能在运行时反复导入应用程序,因此可以忽略(最小)开销。

答案 1 :(得分:2)

这是主观的,但在这篇文章中有一个很好的讨论: What's the best practice using a settings file in Python?

使用您的方法,它将被视为与任何其他python脚本相同的方式,即在导入时。如果您希望更新访问/或不重新启动服务,最好使用外部/非python配置文件(例如json,.ini)并设置刷新文件的功能。

答案 2 :(得分:0)

您必须创建一个文件,例如settings.py, 将文件的路径添加到系统的文件中。 例如:

sys.path.append(os.path.dirname(__file__))

А在任何地方都可以导入文件并从任何设置中获取:

import settings

env = settings.environment

同样,许多工作框架。