环境变量在python工程中的妙用

工作中,开发,测试,生产都是linux系统,最常见的是centos, 在工程测试和生产部署的时候,时常面临一个不同环境下的参数配置难题。你的项目需要用到mysql数据库,但开发,测试,生产环境的mysql数据库必然是不同的,除了数据库,其他一些配置也会区分这三个环境。一个可行的办法是为这3个环境配置三份不同的配置文件,不同环境下加载不同的配置文件,这就需要手动修改这些配置文件的名称,毕竟程序里加载的配置文件名称是固定的。

那么,能否依据环境的不同加载不同的配置文件呢?

很早以前,我会在程序获取机器的信息,比如机器的操作系统,机器的ip地址,来判断当前机器的环境属于哪一个,这是一个比较low的办法,其实,有一个非常简单实用的方法,就是配置环境变量。

修改 /etc/profile 文件,增加一个新的配置

export PRO_ENV=qa   # 测试环境, dev 开发环境, product 生产环境

在不同环境下的机器上,配置不同的环境变量,当程序启动时,获取这个环境变量,以此来判断当前机器所在的环境,根据环境变量加载不同的配置文件

import os

pro_env = os.environ.get('PRO_ENV', 'product')
if pro_env == 'product':
    import product_conf as config
elif pro_env == 'qa':
    import qa_conf as config
else:
    import dev_conf as config

扫描关注, 与我技术互动

QQ交流群: 211426309

加入知识星球, 每天收获更多精彩内容

分享日常研究的python技术和遇到的问题及解决方案