前言
之前就經常用,今天來湊個篇數.
在開發的過程中,我們經常會將代碼中某些可能更改的,比如redis地址,數據庫地址,限流閾值等參數寫活來提高靈活性,
傳統的方式可能是寫在配置文件中,比如 xml
yml
等文件中解析.
但這種文件的方式配合 Docker
使用較為麻煩,
於是,將配置寫入環境變量的方式逐漸流行起來,這種方式更適合 Docker
使用
本文介紹如何在Python中實現環境變量的插入與讀取
正文
插入環境變量
.env文件
當然,在讀取之前需要插入環境變量,這一步可以由 Docker
解決,但是在開發中我們一般不會使用 Docker
打包后再測試
一般的,我們會在項目的根目錄新建一個 .env
文件,里面保存在項目啟動前需要寫入的環境變量,我們在測試時可先插入環境變量來完成配置寫入
.env
文件大致如下
其實就是每行為一個要插入的變量, 結構為 k=v
注意環境變量寫入的都是字符串,不存在別的類型
同時還要注意避免與系統自帶的環境變量沖突,比如系統變量已經有了 path
而你自定義也叫 path
可能會因為覆蓋而出現混亂
所以在設置環境變量時一般會在最前面加上該項目代號,比如上圖項目叫 CHAOS
環境變量k一般全部大寫
寫入環境變量
使用os與sys模塊可以實現單條導入,但是一個文件需要自己手動實現,而有其他模塊可以幫助我們解決
GitHub
pip install python-dotenv
我們一般在項目開始讀取配置文件,所以測試時在讀取之前寫入一遍
比如在啟動文件 main.py
中調用 config.py
讀取配置, 那么在 config.py
開頭先讀取 .env
文件並用 dotenv
模塊寫入
以上代碼可導入 config.py
上一級目錄的 .env
文件寫入環境變量(實際目錄結構的更改影響此代碼)
讀取環境變量
環境變量的讀取直接使用 os
模塊即可