找回密码
 会员注册
查看: 21|回复: 0

Python在Python项目中做多环境配置(环境变量使用.env文件)

[复制链接]

1

主题

0

回帖

4

积分

新手上路

积分
4
发表于 2024-9-7 00:06:57 | 显示全部楼层 |阅读模式
文章目录01需求场景02分别建立.env文件03指定当前的环境04在代码中加载对应的环境变量文件01需求场景在Python项目中,环境变量的配置通常会使用.env文件进行,但有时,我们的一个Python项目需要区分不同的运行环境,例如本地开发环境、测试环境、开发环境。本文就讲讲如何做多环境的配置。假设我们有三个环境:dev,test,pro。分别对应本地开发环境、测试环境、生产环境,这些环境中有的环境变量是相同的,有的是每个环境特有的。02分别建立.env文件创建四个.env文件,分别是:.env存放通用的环境变量.env.dev对应开发环境,存放开发环境中特有的环境变量.env.test对应测试环境.env.pro对应生产环境03指定当前的环境一种方式是在Linux系统中编辑~/.bashrc文件来设置环境变量:vim/root/.bashrc#写入:ENV_STATE=test#保存并退出后刷新source~/.bashrc1234如果是使用.gitlab-ci.yml,可以这样设置:#.gitlab-ci.yml...workflow:rules:-ifCI_COMMIT_BRANCH=='dev'#测试环境runnervariablesEPLOY_VARIABLE_TAG:"..."ENV_STATE:"test"#添加这一行添加环境状态为testwhen:always-ifCI_COMMIT_BRANCH=='main'#生产环境runnervariablesEPLOY_VARIABLE_TAG:"..."ENV_STATE:"pro"#添加这一行添加环境状态为prowhen:always-when:never#在上述两种情况之外never...deploy:...script: #在dockerrun命令中加入环境变量的配置-dockerrun...-eENV_STATE=$ENV_STATE......123456789101112131415161718192021222304在代码中加载对应的环境变量文件在需要加载环境变量的地方,使用dotenv来加载环境变量。(建议在一个文件中对环境变量进行统一集中管理,这里我专门新建了一个config.py的文件用于导入环境变量)"""config.py"""importosimportdotenv#首先获取当前的环境状态(记录在.gitlab-ci.yml中)如果获取不到则默认使用dev开发环境env_state=os.getenv("ENV_STATE","dev")#先加载通用的环境变量dotenv.load_dotenv()#加载特定环境的环境变量#第一个参数如果获取不到对应文件需要写成绝对路径借助Path(__file__)获取路径#第二个参数override=True表示当已存在同名环境变量时用特定的环境变量值进行覆dotenv.load_dotenv(f".env.{env_state}",override=True)123456789101112
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2025-1-10 19:08 , Processed in 0.430383 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表