Python

【超初心者向け】環境変数とは?bashやpipの概念から設定方法まで

本記事では、初心者向けに環境変数とは何かを説明してきます。
設定方法もご紹介しますので、ぜひ最後まで読んでいただけますと幸いです。

「パスを通す」とよく言われますが、このパスを通すときに躓いた時があったので、備忘録として、パスを通すとは何か、そもそも環境変数ってなに?という点を理解してもらえるよう噛み砕きながら説明していきます。

環境変数とは?

まず、環境変数ってなんなのかをざっくり理解していきましょう。

Wikipediaでは以下のように説明されています。

環境変数(かんきょうへんすう、英語environment variable)はオペレーティングシステム (OS) が提供するデータ共有機能の一つ。OS上で動作するタスクプロセス)がデータを共有するための仕組みである。特にタスクに対して外部からデータを与え、タスクの挙動・設定を変更するために用いる。

参考:https://ja.wikipedia.org/wiki/環境変数

簡単な言葉に表すと、「コンピューター本体が知っている変数」です。

では、実際の例をもとに深掘ってみましょう!

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とは何なのか。設定方法はどうすれば良いのか。が理解できましたでしょうか?開発する上で様々なところで環境変数が利用されますので、理解した上で活用できるようになりましょう!

ABOUT ME
lusk
EC歴3年、23歳。 通販カート会社に2018年新卒で入社し、エンジニア、プロジェクトマネージャー、新規事業の立ち上げを経験。 仕事を楽しくするためのツール作成や業務改善の仕組みを作ったりしてます。