Pythonで環境変数をマスター!初心者でも分かる10のステップ – Japanシーモア

Pythonで環境変数をマスター!初心者でも分かる10のステップ

Pythonの環境変数の使い方を初心者向けに解説した記事のサムネイル画像Python
この記事は約11分で読めます。

 

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

基本的な知識があればカスタムコードを使って機能追加、目的を達成できるように作ってあります。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を凌駕する現役のプログラマチームによって監修されています。

サイト内のコードを共有する場合は、参照元として引用して下さいますと幸いです

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

Pythonはその汎用性と直感的な文法により、初心者から専門家まで幅広い層に愛用されているプログラミング言語です。

Pythonの世界をさらに深く理解する一助として、今回は「環境変数」の設定と利用に焦点を当てて詳しく解説します。

環境変数はOSが提供する機能であり、プログラムがOSとやりとりするための重要な手段となります。

Pythonでもこれらの環境変数を利用することで、プログラムの挙動を外部から制御したり、システムの詳細な情報を取得したりすることが可能です。

この記事ではPythonでの環境変数の設定方法や活用事例を、10のステップで詳しく紹介していきます。

環境変数が未経験の方でも大丈夫!

初心者向けに噛み砕いて説明していきますので、Pythonの理解を一段階深めてみませんか?

●Pythonとは

Pythonは、汎用的である一方で、シンプルな文法と高い可読性が特徴のプログラミング言語です。

科学計算やデータ分析、Web開発など、幅広い分野で利用されており、初心者にとっても学びやすい言語として人気を博しています。

Pythonはオープンソースであり、世界中の開発者の協力によって日々進化し続けています。

●環境変数とは

環境変数は、オペレーティングシステム(OS)が管理する特別な変数で、その値はプログラム全体、あるいはシステム全体で共有されます。

例えば、プログラムの実行パスや、インストールされているソフトウェアの場所、設定などを指定するために使用されます。

これにより、プログラムは自分自身の情報を取得したり、他のプログラムと情報を共有したりすることが可能となります。

●Pythonでの環境変数の設定方法

Pythonでは、osモジュールを利用して環境変数を扱うことができます。

このosモジュールには、環境変数を取得や設定、削除といった操作を行うための機能が提供されています。

○Pythonのosモジュールについて

osモジュールはPythonの標準ライブラリで、オペレーティングシステムとやり取りするための便利な機能が多数提供されています。

この中でも、環境変数を操作するためのos.environos.getenvといった機能は特に重要です。

○os.environを使った環境変数の取得

Pythonで環境変数の値を取得する基本的な方法は、os.environを利用することです。

os.environは辞書型(dict)のオブジェクトで、そのキーと値がそれぞれ環境変数の名前と値と対応しています。

下記のコードは、環境変数HOMEの値を取得する例です。

import os

home = os.environ['HOME']
print(home)

このコードでは、まずosモジュールをインポートしています。

次に、os.environを使ってHOMEという名前の環境変数を取得し、その値をprint関数で表示しています。

このHOMEは多くのOSで設定されている環境変数で、ユーザーのホームディレクトリのパスを表しています。

このコードを実行すると、自分のホームディレクトリのパスが表示されます。

○os.environを使った環境変数の設定

Pythonでは、os.environを使用して環境変数を設定することもできます。

os.environは辞書型のオブジェクトであるため、辞書に新しい要素を追加するように環境変数の名前と値を指定することで、新しい環境変数を設定できます。

下記のコードは、MY_ENVという名前の新しい環境変数を設定し、その値を"Hello, world!"に設定する例です。

import os

os.environ['MY_ENV'] = 'Hello, world!'
print(os.environ['MY_ENV'])

このコードでは、まずosモジュールをインポートしています。

次に、os.environを使って新しい環境変数MY_ENVを作成し、その値を"Hello, world!"に設定しています。

最後に、新たに作成した環境変数の値をprint関数で表示しています。

このコードを実行すると、「Hello, world!」と表示されます。

このようにos.environを使って新たに環境変数を作成し、その値を取得することが可能です。

○os.getenvを使った環境変数の取得

os.getenvは、環境変数の値を取得するための別の方法です。

この関数は、引数に指定した環境変数の名前の値を返します。

環境変数が存在しない場合にはNoneを返します。

これはos.environと異なる点で、os.environを使って存在しない環境変数の値を取得しようとすると、KeyErrorが発生します。

そのため、環境変数が存在するかどうかわからない場合には、os.getenvを使うことでエラーを避けることができます。

下記のコードは、MY_ENVという名前の環境変数の値をos.getenvを使って取得する例です。

import os

my_env = os.getenv('MY_ENV')
print(my_env)

このコードでは、まずosモジュールをインポートしています。

次に、os.getenvを使って環境変数MY_ENVの値を取得し、その値をprint関数で表示しています。

このコードを実行すると、「Hello, world!」と表示されます。

これは先ほど設定したMY_ENVの値を取得して表示しているからです。このようにos.getenvを使って環境変数の値を取得することが可能です。

次に、この知識を活かして、Pythonで環境変数をどのように利用するのかを見ていきましょう。

●環境変数の活用事例

環境変数は、プログラムの振る舞いを外部から制御するための一般的な手段です。

例えば、開発環境と本番環境でデータベースの接続先を変えたいとき、環境変数を使ってデータベースの接続先を指定することができます。

下記のコードは、環境変数DATABASE_URLの値によってデータベースの接続先を変更する例です。

import os

database_url = os.getenv('DATABASE_URL', 'sqlite:///:memory:')
print(database_url)

このコードでは、まずosモジュールをインポートしています。

次に、os.getenvを使って環境変数DATABASE_URLの値を取得し、その値をprint関数で表示しています。

ここで、os.getenvの第二引数に'sqlite:///:memory:'を指定しています。

これは、DATABASE_URLが設定されていない場合のデフォルト値です。

このコードを実行すると、DATABASE_URLが設定されていればその値が表示され、設定されていなければsqlite:///:memory:が表示されます。

このように環境変数を使って、プログラムの振る舞いを動的に変更することが可能です。

○サンプルコード1:Pythonでの環境変数の設定と取得

Pythonで環境変数を設定し、それを取得する方法を見ていきましょう。

まずは、osモジュールを使って環境変数を設定する基本的なコードから見ていきます。

import os  # osモジュールのインポート

os.environ['MY_ENV'] = 'Hello, world!'  # 環境変数の設定
print(os.environ['MY_ENV'])  # 環境変数の取得

このコードではosモジュールを使って新たに環境変数を作成し、その値を取得しています。

この例では、まずosモジュールをインポートし、次に新しい環境変数MY_ENVを作成、その値を"Hello, world!"に設定しています。

最後に、新たに作成した環境変数の値をprint関数で表示しています。

上記のコードを実行すると、出力結果として「Hello, world!」と表示されます。

これは、環境変数MY_ENVに設定した値を取得し、その結果を表示しているからです。

○サンプルコード2:Pythonでの環境変数の存在確認

次に、特定の環境変数が存在するかどうかを確認する方法を見ていきましょう。

Pythonのosモジュールを使用して、指定した名前の環境変数が存在するかどうかを確認できます。

import os  # osモジュールのインポート

if 'MY_ENV' in os.environ:  # 環境変数の存在確認
    print(os.environ['MY_ENV'])  # 存在すれば、その値を表示
else:
    print('MY_ENV does not exist.')  # 存在しなければ、メッセージを表示

このコードでは、if文を使って環境変数MY_ENVが存在するかどうかを確認しています。

存在していればその値を表示し、存在しなければ「MY_ENV does not exist.」というメッセージを表示します。

上記のコードを実行すると、先ほど設定した環境変数MY_ENVが存在する場合は「Hello, world!」が表示され、存在しない場合は「MY_ENV does not exist.」と表示されます。

○サンプルコード3:Pythonでの環境変数の削除

最後に、Pythonで環境変数を削除する方法を見ていきましょう。

Pythonのosモジュールのos.environ.pop関数を使って、環境変数を削除します。

import os  # osモジュールのインポート

os.environ.pop('MY_ENV', None)  # 環境変数の削除
print(os.environ.get('MY_ENV', 'MY_ENV does not exist.'))  # 環境変数の取得もしくはメッセージの表示

このコードでは、os.environ.pop関数を使って環境変数MY_ENVを削除し、次にos.environ.get関数でその環境変数の値を取得しようとしています。

環境変数MY_ENVが存在しない場合、「MY_ENV does not exist.」と表示します。

上記のコードを実行すると、「MY_ENV does not exist.」と表示されます。

これは、環境変数MY_ENVが削除され、もはや存在しないためです。

●Pythonと環境変数の注意点

Pythonで環境変数を扱う際には、いくつか注意すべき点があります。

まず、Pythonプログラムによって設定された環境変数は、そのプログラムが動作している間だけ有効で、プログラムが終了すると環境変数も消えてしまいます。

これはPythonだけでなく、一般的に子プロセスが親プロセスの環境変数を変更すると、それは子プロセス内でのみ反映されるという原則によるものです。

次に、環境変数は大文字小文字を区別します。

つまり、'my_env''MY_ENV'は別の環境変数として扱われます。環境変数の名前を決めるときには、この点に気をつけてください。

最後に、環境変数の値は文字列として扱われます。

たとえば、数値を環境変数として設定したい場合でも、その数値は文字列に変換されてから設定されます。

値を取り出す際には、必要に応じて適切な型に変換することが必要です。

これらの注意点を念頭に置いて環境変数を扱うと、予期しないエラーを避けることができます。

●Pythonでの環境変数のカスタマイズ方法

Pythonで環境変数をカスタマイズする方法もいくつかあります。

たとえば、環境変数が存在しない場合にデフォルト値を設定する方法です。

これは、os.environ.get関数を使用して行います。

import os  # osモジュールのインポート

my_env = os.environ.get('MY_ENV', 'Default value')  # 環境変数の取得(存在しなければデフォルト値)
print(my_env)  # 結果の表示

このコードでは、環境変数MY_ENVの値を取得しようとしています。

もし環境変数MY_ENVが存在しない場合、'Default value'というデフォルト値を設定しています。

その結果をprint関数で表示しています。

上記のコードを実行すると、環境変数MY_ENVが存在する場合はその値が表示され、存在しない場合は「Default value」と表示されます。

これは、プログラムが特定の環境変数を必要とするが、その環境変数が設定されていない場合に役立ちます。

この方法を使えば、環境変数が存在しない場合にもプログラムを正常に動作させることができます。

まとめ

この記事では、Pythonで環境変数をどのように扱うか、そしてそれをカスタマイズする方法について詳しく説明しました。

最初に、Pythonで環境変数を操作する際の注意点を見てきました。

具体的には、Pythonから設定した環境変数はプログラムが終了すると消えてしまうこと、環境変数は大文字小文字を区別すること、そして環境変数の値は常に文字列として扱われることを学びました。

次に、Pythonで環境変数をカスタマイズする方法を見てきました。

具体的には、os.environ.get関数を使って環境変数が存在しない場合にデフォルト値を設定する方法を学びました。

この方法を使えば、環境変数が存在しない場合でも、プログラムを適切に動作させることができます。

Pythonの環境変数の使い方を理解することで、Pythonプログラムの挙動をよりよく制御することができます。

また、環境変数はシステムの設定や秘密情報の管理など、様々な場面で活用されるため、その扱い方を知っておくことは非常に重要です。

この記事が、Pythonで環境変数を扱うための一歩となることを願っています。