Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
39
Help us understand the problem. What is going on with this article?
@takuyanin

環境構築の真髄(PATHなどの概念)を理解しよう[Python編]

More than 1 year has passed since last update.

最初に

今や、プログラミング言語は次々と開発され、世の中に溢れかえっていますよね。
その中でも「なぜpythonがこんなにも熱いのか」。
pythonでできることは多様であり、この記事を読んでいただくとpythonという言語の費用対効果が抜群に高いこともご理解いただけるでしょう。
また、pythonでの環境構築を完了させ、pythonの可能性を探求していきましょう。

pythonとは

Pythonはプログラミング言語の1つです。気軽に楽しくプログラミングできて、しかも実用的です。大きなWebアプリケーションから小さなプログラムまで、様々なソフトウェアを作ることができます。また、データサイエンスや機械学習の分野で最も多く使用されています。

Pythonで学習を進める理由

pythonという言語には下記のような特徴とメリットがあります。

Pythonはデータサイエンス分野で最も使用されているプログラミング言語の1つ

pythonは様々な分野で活躍出来る言語ですが、特に、データサイエンスの分野でその人気は高く、今もなお活発にライブラリが開発されています。

機械学習に特化したライブラリが存在する

pythonはscikit-learn(次の記事でご説明します)という機械学習のライブラリを使用することができます。scikit-learnは世界で最もよく利用される機械学習ライブラリの1つで、scikit-learnを簡単に利用できることはPythonの人気を押し上げている一因です。

Pythonエンジニアの年収

2016年にビズリーチが発表した発表によると、Pythonエンジニアの平均年収は「651万円」で国内で一番高いとされています。これは高まる機械学習エンジニアへのニーズを反映した結果だと言われています。

dropboxやyoutubeのような世界最大規模のサービスもその大部分がpythonで開発されています。
そのほかの多くのwebサイトでもpythonが使用されておりますが、それ以外にもロボットや学術的な研究分野で広く使われています。

pythonの環境構築を行おう

Pythonの環境構築を行う上で、今回はAnacondaというパッケージ経由でPythonをインストールします。

Anaconda

AnacondaはPython本体と、Pythonでよく利用されるツールをセットにしたPythonパッケージです。
AnacondaをインストールするだけでPython本体とツールがインストールされるため、環境構築がかなり楽になります。

では早速始めていきましょう。

pyenvをインストールする

$ git clone https://github.com/yyuu/pyenv.git ~/.pyenv

pyenvとは

Pythonのバージョンマネージャです。こちらを使ってPythonを管理します。MacであればもともとPythonはインストールされているが、これはシステム用なので使いたくないですね。もちろんHomebrewを使っても楽々とインストールできますが、Pythonのバージョンを複数切り替えて使いたい場合はバージョンマネージャを使うのが現実的です。

上記のコマンドにより ~/.pyenv ディレクトリの下にpyenvがインストールされます。
注:ホームディレクトリの下に.pyenvディレクトリを作成しておく必要はございません(無ければ勝手に作成されます)。

pyenvにパスを通す

exportコマンドとは?

これからexportコマンドを使っていくので最初に意味を押さえておきましょう。
以下のことができるコマンドです。

  • 環境変数を表示する。
  • 環境変数を設定する。
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile

このコマンドにより、$HOME/.pyenv をPYENV_ROOTという環境変数として設定します。
* 環境変数として設定しておくことで、「その値を全てのアプリケーションから参照することができる」のです。
つまり、いつでも誰でも必要な情報を取り出すことができるようになります。
環境変数とはそういうものだという認識で大丈夫です(次第に実態がつかめてくるようになります)。

$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile

このコマンドにより、$PYENV_ROOT/bin:$PATHをPATHに設定します。
ん?どういうことだ?
現時点でecho $PATHコマンドで出力されるPATHが/b:/cだとした時に、PATH="/a:$PATH"とすると、最終的にPATHは/a:/b:/cとなることを意味します(厳密にはその他いくつかのコマンドを実行したのちにPATHが更新されるわけですが)。
「環境変数は参照する時には$を先頭につける」ということを踏まえればこのコマンドが理解できるのではないでしょか?

$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile

こちらのコマンドでpyenvを使えるようにする、つまり、「パスを通す」ということが完了します。
$(pyenv init -)が説明できるほど理解できておりません、、分かる方はコメント欄などにてご教示頂けますととんで喜びます(笑

しかし、バッシュに書き込んだ結果を有効にするためには、シェルを再起動する必要がありますね。
sourceコマンドを使いましょう。

$ source ~/.bash_profile

次にAnacondaをインストールしてpythonも同時にインストールしましょう。

$ pyenv install anaconda3-4.0.0

インストールしてきた後はshimのリフレッシュをしておきましょう。
* shim:プログラムのバージョン間の差異を埋める緩衝材のように使う薄いレイヤーみたいなもの。
参考記事:Shimの意味

$ pyenv rehash

使うpythonを指定しましょう。

pyenv global anaconda3-4.0.0

そして下記のようになれば成功です。
python3

$ python3
Python 3.5.1 |Anaconda 4.0.0 (x86_64)| (default, Dec  7 2015, 11:24:55)
[GCC 4.2.1 (Apple Inc. build 5577)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

表示が確認できれば、exit()とターミナルに打ち込んで終了させてください。

最後にpython3と打ち込んでますが、この「3」という数字はpythonのバージョンを表している。現在pythonは「version2系」と「version3系」が共存しておりどちらもよく使われるバージョンとなっています。

pyenvでpythonをインストール

先ほどはanacondaでpythonをインストールしましたが、バージョンを指定してインストールする方法をご紹介します。
バージョン切り替えを体験するために2つほどバージョンが違うpythonをインストールしてみましょう。

$ pyenv install 2.7.10
$ pyenv install 3.5.0

下記コマンドでインストール可能なpythonのバージョン一覧を表示することができます。

$ pyenv install --list

pyenvでバージョンを切り替えてみる

バージョンを切り替えてみます。localの場合は今いるディレクトリに、globalの場合は全体に反映されます。

$ pyenv local 2.7.10
$ pyenv global 3.5.0

ここできちんと変更が反映されているか確認するためpythonのバージョンを調べます。

$ python --version
Python 2.7.10

このように変更が反映されていれば問題ありません。

パスについて

「パスとはなんぞや」という方は下記記事が参考になります。
PATHを通すとは? (Mac OS X)

終わりに

今回はpythonを学習し始めるに当たって、最初に済ませておくべきところを言語のユースケースとともにご説明しました。コマンド一つ一つの意味についても言及することを心がけたつもりですが、これによりrubyなど他の言語についての環境構築の理解にも助けになると考えています。
次回以降には有名なライブラリを中心にまとめていきたいと思います。
何かご要望がございましたら、コメント欄などにてお願いします。

39
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
takuyanin
Just keep going. My favorites: Programming/ English/ American TV series/ Travel/ Dance/ Music

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
39
Help us understand the problem. What is going on with this article?