python configuration at compile time
到目前为止,我们有一个文件
1 2 3 4 5 6 7 8 9 | 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条件,还是每次访问配置变量时都检查if条件?
这是主观的,但在本文中有一个很好的讨论:在Python中使用设置文件的最佳实践是什么?
使用您的方法,它将像其他任何Python脚本一样被处理,即在导入时。如果希望在访问/或不重新启动服务时对其进行更新,最好使用外部/非python配置文件(例如json、.ini)并设置刷新文件的功能。
所有代码在导入时运行。但是,由于您不太可能在应用程序运行时一次又一次地导入它,因此您可以忽略(最小)开销。
您必须创建一个文件,例如
1 | sys.path.append(os.path.dirname(__file__)) |
在您可以导入文件并从任何设置获取的任何位置之后:
1 2 3 | import settings env = settings.environment |
同样,许多工作框架。