本記事では、初心者向けに環境変数とは何かを説明してきます。
設定方法もご紹介しますので、ぜひ最後まで読んでいただけますと幸いです。
「パスを通す」とよく言われますが、このパスを通すときに躓いた時があったので、備忘録として、パスを通すとは何か、そもそも環境変数ってなに?という点を理解してもらえるよう噛み砕きながら説明していきます。
環境変数とは?
まず、環境変数ってなんなのかをざっくり理解していきましょう。
Wikipediaでは以下のように説明されています。
環境変数(かんきょうへんすう、英語: environment variable)はオペレーティングシステム (OS) が提供するデータ共有機能の一つ。OS上で動作するタスク(プロセス)がデータを共有するための仕組みである。特にタスクに対して外部からデータを与え、タスクの挙動・設定を変更するために用いる。
簡単な言葉に表すと、「コンピューター本体が知っている変数」です。
では、実際の例をもとに深掘ってみましょう!
pipやnpmって?
Pythonを利用する際に、ライブラリを追加するときにpipやnpmというコマンドを利用することがあると思います。
このコマンドはPATHが通っているから使えるコマンドなのです。
ターミナルで少し覗いてみましょう。
以下のコマンドで環境変数の一覧が確認することができます。
$ printenv
# SHELL=/bin/bash
# TMPDIR=/var/folders/jr/1xrcz0h509q6h5qk5y5wk__40000gn/T/
# GOOGLE_APPLICATION_CREDENTIALS=/Users/# SHELL=/bin/bash
# TMPDIR=/var/folders/jr/1xrcz0h509q6h5qk5y5wk__40000gn/T/
# GOOGLE_APPLICATION_CREDENTIALS=/Users/<user name>/hide/rakutenApi/data-lake-331201-fa8aa4e43e38.json
# CONDA_SHLVL=1
# CONDA_PROMPT_MODIFIER=(base)
# TERM_PROGRAM_VERSION=444
# OLDPWD=/Users/<user name>/Develop/flask/sample_study/apps
# TERM_SESSION_ID=F4F77B0F-8D52-426F-AD0C-9B82C9BD7F26
# USER=<user name>
# CONDA_EXE=/Users/<user name>/opt/anaconda3/bin/conda
# SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.m10PokpPry/Listeners
# _CE_CONDA=
# PATH=/Users/<user name>/opt/anaconda3/bin:/Users/<user name>/opt/anaconda3/condabin:/Library/Frameworks/Python.framework/Versions/3.9/bin:/Library/Frameworks/Python.framework/Versions/3.8/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/share/dotnet:/Library/Apple/usr/bin:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/Users/<user name>/google-cloud-sdk/bin:/Users/<user name>/.npm-global/bin
# CONDA_PYTHON_EXE=/Users/<user name>/opt/anaconda3/bin/python/hide/rakutenApi/data-lake-331201-fa8aa4e43e38.json
# CONDA_SHLVL=1
# CONDA_PROMPT_MODIFIER=(base)
# TERM_PROGRAM_VERSION=444
# OLDPWD=/Users/<user name>/Develop/flask/sample_study/apps
# TERM_SESSION_ID=F4F77B0F-8D52-426F-AD0C-9B82C9BD7F26
# USER=<user name>
# CONDA_EXE=/Users/<user name>/opt/anaconda3/bin/conda
# SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.m10PokpPry/Listeners
# _CE_CONDA=
# PATH=/Users/<user name>/opt/anaconda3/bin:/Users/<user name>/opt/anaconda3/condabin:/Library/Frameworks/Python.framework/Versions/3.9/bin:/Library/Frameworks/Python.framework/Versions/3.8/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/share/dotnet:/Library/Apple/usr/bin:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/Users/<user name>/google-cloud-sdk/bin:/Users/<user name>/.npm-global/bin
# CONDA_PYTHON_EXE=/Users/<user name>/opt/anaconda3/bin/python
以下のような設定値になっていることが確認できると思います。
環境変数=<パス,値>
PAHTは他の環境変数と異なり、値が長いですが、:区切りで複数の設定がされている状態になります。
この設定がされていないと、コマンドが効かずコマンド実行ができない状態になります。
コマンドが効かない場合には、設定を行なっていきましょう。
環境変数の設定方法
export というコマンドで環境変数の設定ができます。
$ export PATH="$HOME/Library/Python/2.7/bin:$PATH"
しかし、こちらは実行中のターミナル限定の変数になるため、コンピューター本体に覚えさせたい場合は、この変数をとある設定ファイルに書き込む必要があります。
そんな時は、.bash_profile ファイルを編集しましょう。
$ vi ~/.bash_profile
i 編集モードに入り、書きたいコードを書く
esc 編集モード解除
:wq 保存して終了
:q 編集せず終了
編集後は、以下コマンドを実行しましょう。
※実行しないとコマンドが読み込めないため実行が必要になります。
$ source .bash_profile
参考サイト
「PATH を通す」の意味をできるだけわかりやすく説明する試み
まとめ
PATHとは何なのか。設定方法はどうすれば良いのか。が理解できましたでしょうか?開発する上で様々なところで環境変数が利用されますので、理解した上で活用できるようになりましょう!