ウェブサイト検索

Python で環境変数値にアクセスする


Python の環境変数は、コードの外部に保存される構成値であり、アプリケーションによって実行時に使用されます。これらの変数は、Python の辞書と同様に、キーと値のペアの形式で存在します。これらの変数は、アプリケーション コードを変更せずに、構成ファイルから設定、更新、または削除できます。 Python は、アプリケーションのコードに影響を与えることなく環境変数にアクセスするための多くのオペレーティング システム関数を提供します。この記事では、Python で環境変数にアクセスする方法を学びます。

OSモジュールの使用

オペレーティング システムと対話するために、Python には OS と対話したり、環境変数にアクセスしたりできる 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-dotenv は、dotenv モジュールをローカル ファイル システムにインストールします。

python-dotenv モジュールをインストールした後、プロジェクトのルート ディレクトリに .env ファイルを作成し、その中に環境値をキーと値のペアとして作成する必要があります。

MY_KEY_VAR=my_value

My_KEY_VAR は環境変数のキーで、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-var オプションを値 “my value ” とともに渡すと、argparse モジュールの parse_ags() がオプションを解析し、オプションの値、つまり 「my_value」

構成パーサーモジュールの使用

Config パーサー は、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 モジュールを使用して複数の環境から現在の環境の環境変数にアクセスする方法についても説明します。

関連記事: