【Python】OSの「環境変数」を取得する方法を紹介(Windows)
こんにちは、TAKです。
今回は、Windowsユーザー向けに「python」を使って「環境変数」を取得する方法を紹介していきます。
僕はエンジニア出身ではないので、「そもそも環境変数って何?」というレベルだったのですが、Djangoを使ったWebアプリケーションを作っている過程で「環境変数をpythonで取得することの必要性(メリット)」を知りました。
そこで今回は、①環境変数の概要、②コマンドプロンプト(黒い画面)を使って環境変数を操作する方法、そして③設定した環境変数をpythonで取得する方法&メリットの3つを紹介していきます。
【こんな人に読んで欲しい記事です】
● pythonを使ってOSの環境変数を取得出来るようになりたい方
● 環境変数の概要や、pythonを使って環境変数を取得するメリットを知りたい方
【python】OSの環境変数を取得するメリットと方法とは
【ポイント①】OSの環境変数とは何か?
そもそもOSの環境変数とは何でしょうか?
「そんなの知ってるよ~」という方は、読み飛ばしちゃってください。
OSとは「Operation System」の略のことで、パソコンやスマホなどが動作するために必要不可欠な基本ソフトのことです。OSの代表格としては、「Windows」「Mac」「Linux」などが有名ですね。
そして、環境変数とは「OSが動作するために必要な値を保持している箱」のことです。
プログラミングを勉強している方であれば、どの言語でも「変数」って出てくると思いますが、その「変数」をOSレベルでも持っているとイメージしてもらえればわかりやすいと思います。
この後、OS「Windows」の環境変数を「コマンドプロンプト」を用いて確認・設定していきますが、MacやLinuxでも同様に環境変数を持っているということは知っておいてください。
【ポイント②】OSの環境変数をコマンドプロンプトで操作する方法
ここからは、コマンドプロンプトを用いてOSの環境変数を操作する4つの方法を紹介していきます。
まず、「Windowsキー+ R」を押すと「ファイル名を指定して実行」と現れるので、そこに「cmd」と入力してコマンドプロンプト(黒い画面)を立ち上げてください。
(よくわからない方は、Windowsキーから「コマンドプロンプト」と入力してもOKです。)
先に、ここで紹介するコマンドの一覧を紹介しておきます。
OSの環境変数をコマンドプロンプトで操作する方法
● 「set」 ・・・ 設定されている環境変数の一覧を表示
● 「set <指定した文字>」 ・・・ 指定した文字を含む環境変数を表示
● 「set <環境変数名> = <値>」 ・・・ 自分で設定した環境変数を新規作成
● 「set <環境変数名> =」 ・・・ 指定した環境変数を削除
1つ目のコマンド「set」を入力してみましょう。
すると、以下(一部省略)のように設定されているOSの環境変数がズラッと出てくるかと思います。
続いて、2つ目のコマンド「set <指定文字>」を入力してみます。
指定した文字を含む環境変数を表示してくれますが、ここでは「PROGRAM」と指定してみます。
すると、「Program」で始まる変数が表示されたことがわかるかと思います。
続いては、3つ目のコマンド「set <環境変数名> = <値>」で新たな環境変数を作成してみます。
ここで作成した環境変数を(後ほど)「python」を用いて取得することが最終的な目的です。
ここでは「DB_username」と「DB_password」の2つを設定してみたいと思います。
設定後、環境変数を確認してみると、上記のように新たな環境変数が追加されていることがわかりますね。
4つ目のコマンドは環境変数を削除する「set <環境変数名> =」という方法です。
先ほど作成した環境変数「DB_password」を削除してみたいと思います。
すると、先ほど設定した環境変数「DB_password」が消えていることがわかりますね。
このように、コマンドプロンプト上で環境変数の設定操作ができるので、ここで紹介したコマンド4つは是非知っていてください。
【ポイント③】OSの環境変数をpythonで取得する方法&メリット
最後に、「python」を使ってOSの環境変数を取得する方法を見ていきます。
Jupyter Notebook上でpythonのコードを確認してみます。
コード自体はかなりシンプルで簡単に環境変数の取得が可能です。
ライブラリ「os」をインポートした上で、「os.environ.get(環境変数名)」で環境変数の値を取得することが出来ます。
簡単に環境変数の値を取得することが出来ましたが、一体何のメリットがあるのでしょうか?
色々あるとは思いますが、僕が感じたメリットは「ハードコード」しなくて済むという点です。
勘の良い方はお気付きかもしれませんが、先ほど設定した2つの環境変数「DB_username」や「DB_password」はデータベースに接続する際に必要となるアクセス情報を想定していました。
開発の場面で個人情報含む「機密情報」をそのままファイルに書く(=ハードコードする)ことは、セキュリティ上もよろしくないですよね。そのような時には、今回のように環境変数を設定しておき、必要に応じてpythonで環境変数の値を取得する方法を使うメリットがあるということです。
一例ではありますが、下記記事で環境変数をpythonで取得する場面が出てくるので、興味のある方は参考にしてみてください。
まとめ
いかがだったでしょうか?
今回は、OS環境変数の概要からコマンドプロンプト上での操作方法、pythonで環境変数の値を取得する方法まで紹介してきました。環境変数の使い方やpythonでの扱い方が今一つわからなかった方の参考になれば幸いです。
では今回はこのへんで。