在 Python 中訪問環境變數值


Python 中的環境變數是在程式碼外部儲存的配置值,應用程式在執行時使用這些值。這些變數以鍵值對的形式存在,就像 Python 中的字典一樣。可以從配置檔案中設定、更新或刪除這些變數,而無需更改應用程式程式碼。Python 提供了許多作業系統函式來訪問環境變數,而不會影響應用程式的程式碼。在本文中,我們將學習在 Python 中訪問環境變數的方法。

使用 OS 模組

為了與作業系統互動,python 有一個 os 模組,藉助它可以與作業系統互動以及訪問環境變數。os.environ 字典包含所有以鍵值對形式存在的環境變數。

我們可以使用 os.environ 訪問環境變數的路徑以及任何新的環境變數值。

示例

import os

# get the value of the PATH environment variable
path = os.environ['PATH']
print(path)

# set a new environment variable
os.environ['MY_VAR'] = 'my value'

# get the value of the new environment variable
my_var = os.environ['MY_VAR']
print(my_var)

輸出

/opt/bin:/usr/local/nvidia/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/tools/node/bin:/tools/google-cloud-sdk/bin
my value

示例

如果找不到環境變數,則程式碼會引發鍵錯誤。為了避免此類錯誤,我們可以使用 os.environ.get() 函式訪問環境變數,並在找不到鍵時避免鍵錯誤。

import os

# get the value of the MY_VAR environment variable, or return None
my_var = os.environ.get('MY_VAR')
print(my_var)

輸出

None

使用 Dotenv 模組

在行業中,我們在開發、登臺和生產程式碼庫上工作時使用不同的環境。每個環境都有單獨的環境變數檔案。Dotenv 是一個用於訪問多個環境中環境變數的第三方庫。

安裝

要使用 dotenv 模組,我們首先必須透過以下命令安裝 python-dotenv

pip install python-dotenv

Pip 是 python 包管理器。Pip install python-dotenvdotenv 模組安裝到您的本地檔案系統中。

安裝 python-dotenv 模組後,我們必須在專案的根目錄中建立一個 .env 檔案,並在其中以鍵值對的形式建立環境值。

MY_KEY_VAR=my_value

My_KEY_VAR 是 env 變數的鍵,my_value 是與其對應的值。

現在,我們可以使用 dotenv.load_dotenv() 函式在需要的地方載入 Python 程式碼中的 .env 檔案,該函式讀取 .env 檔案並將所有環境變數載入到 os.environ 模組中。

示例

from dotenv import load_dotenv
import os

# load the environment variables from the .env file
load_dotenv()

# get the value of the MY_VAR environment variable
my_var = os.environ['MY_KEY_VAR']
print(my_var)

輸出

my_value

使用 Argparse 模組

argparse 是 python 中的一個標準庫,用於解析命令列引數。我們可以使用 argparse 庫將環境變數作為命令列引數傳遞給 Python。

演算法

  • 為我們要傳遞的每個環境變數定義一個命令列引數。

  • 然後使用 argparse 返回的 args 物件訪問環境變數。

  • 在執行檔案時傳遞環境變數及其值。

示例

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('--my-var')
args = parser.parse_args()

my_var = args.my_var
print(my_var)

輸出

None

在執行上述檔案時,我們需要使用鍵名稱傳遞 env 值。

python script.py --my-var "my value"

當我們在命令列中使用其值 “my value” 傳遞 –my-var 選項時,argparse 模組的 parse_ags() 會解析該選項並獲取該選項的值,即 “my_value”

使用 Config Parser 模組

Config parser 是一個 python 庫,用於在 python 應用程式中讀取配置檔案。

演算法

要使用 config parser 模組,我們必須

  • 建立一個配置檔案,併為每個部分(如果需要,例如開發、生產和登臺)以鍵值對的形式宣告環境變數。

  • 在 python 檔案中使用 os.getenv() 函式訪問當前環境。

  • 在我們需要訪問環境變數的 python 檔案中,我們可以使用 ConfigParser 模組訪問當前環境的環境變數。

[development]
MY_VAR=my value

[production]
MY_VAR=another value

import configparser
import os

# get the current environment
env = os.getenv('ENVIRONMENT', 'development')

# read the configuration file
config = configparser.ConfigParser()
config.read('config.ini')

# get the value of the MY_VAR environment variable for the current environment
my_var = config.get(env, 'MY_VAR')
print(my_var)

結論

在本文中,我們探討了在 Python 檔案中訪問環境變數的不同方法。我們瞭解瞭如何使用 os 模組訪問環境變數,如何使用 dotenv 庫訪問多個環境中的環境變數,如何使用 argparse 模組將環境變數作為命令列引數傳遞,以及如何使用 ConfigParser 模組從多個環境中訪問當前環境的環境變數。

更新於: 2023年4月17日

8K+ 閱讀量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.