この記事はこんな人向け
- プログラミング初学者
- ネットで調べたコマンドのコピペで環境構築をすませて、実際に自分が何を行ったのか理解していない人
- terminalで python hoge.py のようなコードを叩いた際に、 裏側で何が行われているのか気になる人
はじめに
プログラミングを勉強する上では避けては通れないのが環境構築作業です。
Progateなど環境構築不要で学べるサイトはたくさんありますが、将来的に自分のローカル環境で開発するためには必ず必要になります。
今回は初学者がよく詰まりがちな環境構築とは何かをできるだけ簡単にして説明したいと思います。
まず前提知識として
私たちはC言語やJavaScript、Ruby、Pythonなど様々なプログラミング言語でコードを書いています。
しかしあれらの言語は人間に読みやすように設計された言語であり、コンピュータは理解することができません。
コンピュータが理解できるのは、***「0」と「1」で書かれた「機械語」***と呼ばれるものです。
つまり、人間が書いたコードをコンピュータに実行してもらうためには, プログラミング言語から機械語へ変換することが必要なのです。
この変換プロセスには***「コンパイラ」あるいは「インタプリタ」***と呼ばれる「翻訳の役割を担うソフトウェア」が必要になります。
またこれらのソフトウェアは基本的に言語ごとに専用のものが必要になります。
python hoge.py が意味すること
python hoge.py
というコマンドは、python 用のインタプリタ(pythonはインタプリタ型であるため)に hoge.pyというソースコードを渡し、機械語(正確にはpythonの場合はいったん中間言語へ変換される)へ変換、実行してもらうことを表しているのです。
こう考えると凄くシンプルですね。
環境構築とはなにか
プログラミング言語を学ぶ上での環境構築とは、上記で説明した機械語への変換に必要なもろもろの道具を自分のPC上に落としてきて、使えるようする作業と言えます。
以下によくある環境構築のコマンド例を上げてみます
内容は適当なものなので、これらを実行するのは避けてください
(例はpythonになっていますが、 他の言語でも基本的に同じです)
brew install python
export PATH="/usr/local/var/:$PATH"
echo 'export PATH="/usr/local/var/:$PATH"' >> ~/.bash_profile
一行目のbrew install python
というコマンドは、インタプリタを自分のPC上にインストールする作業になります。(ここではhomebrewをつかってinstallしていますが、サイトなどから落としてきても問題有りません)
この作業だけで環境構築が完了する気もしますが、殆どの場合このままでは動きません。
なぜならPCがインタプリタの場所を知らないからです。
terminalなどからコマンドが実行された際、PCはPATHと呼ばれる予め設定されたディレクトリ(フォルダ)郡の中を探索し、コマンドで指定されたファイルの存在チェックを行います。
新しくインストールされたファイルはたいていPATHの中に含まれていないため、PCが見つけることができず、command not found
のようなエラーを吐くことになります。
そこで必要になってくるのがexport PATH="/usr/local/var/:$PATH"
のコマンドです。
こちらはPATHに新しく落としてきたファイルの在処を教えてあげる(PATHに追加する)プロセスになります。
ここで気をつけてほしいのはちゃんとファイルが存在する場所をPATHに追加する ということです。
大抵他の人のコマンドを真似していればうまくいくのですが、環境によっては参考にした人とは異なる場所にファイルがインストールされている可能性もあります。
もしコピペでうまく行かない場合は、PATHが異なっている可能性を考慮しましょう。
インストールされたファイルの場所を知るためにはwhichコマンドを使用しましょう。
このコマンドの結果から、/user/local/var/pyenv/shims/
配下にpythonのインタプリタがおいてあることがわかります。
この場合正しいPATHの教え方はexport PATH="/user/local/var/pyenv/shims/:$PATH
のようになります。
最後のecho 'export PATH="/usr/local/var/:$PATH"' >> ~/.bash_profile
こちらのコマンドですが、これはホームディレクトリにある.bash_profile というファイルにexport PATH="/usr/local/var/:$PATH"
という一行を書き加えることを表しています。
PATHはterminalなどの実行環境を立ち上げた際に初期化されます。
そのためexport PATH="/user/local/var/pyenv/shims/:$PATH
で加えたPATHは、実行環境を閉じてしまうと追加したPATHが消えてしまうのです。
実行環境を立ち上げるたびにPATHを追加するのは煩わしいということで、3行目のコマンドを実行しています。
※実行環境を立ち上げると、最初に.bash_profile中に書かれたlinuxコマンド郡が実行されます。
これにより、人力で追加しなくてもPATHが追加されるようになります。
※正確にはデフォルトに設定されているshellの設定ファイルが実行されます。
shellとは
まとめ
新しい言語を学ぶ際に行う環境構築とは、
1. ソースコードをCPUが処理できる機械語に翻訳するために必要な道具をPC上に落としてきて
2. その道具の在処をPCに教えてあげる
この2つの作業のことである
実はみなさんがよくやっているであろうライブラリのインストールやimportも上記と同じような仕組みなのです。
必要なファイルを落としてきてその場所を教えてあげる、コレがサードパーティーのコードを利用する際の基本となります。
もし理解できない点や、コレは間違っているよ という内容があればご指摘いただけると幸いです!
twitterでもこちらでも気軽に声をかけていただけると!