僕は今は画像認識の研究をしています。去年の10月、半導体の実験系の研究室から画像認識の研究室に移ってきました。今の研究室に移ってきて一番最初に苦労したのは、画像認識とかディープラーニングの理解とかではなくPCの環境構築でした...
それまでプログラミングを勉強しようと度々挑戦しては失敗していました。なぜなら、何から始めたら良いのかわからないから!
ある程度できるようになって思うのは、"初心者の、プログラミングへの導入ハードルの高さ" です。
最近話題の「スケベ博士」を作ったDaiさんを見ていて共感するところが多かったので、初心者のハードルを下げるために書いてみました。
今回はMACでpythonを使ってプログラミングを始める時の第一歩として Jupyter labを使えるようになるところまで説明しようと思います。
一回環境構築をしてしまえばpythonを使って勉強も始められると思います。やはり一番手こずるのは 何から始めればよいのか? だと思うのでそこをわかりやすく説明していきたいと思います。
次回以降はクローニングやスクレイピングで「NewsPicksに自動ログインする」などの技に挑戦していきます。ゆっくり理解していきましょう。
<目次>
- Homebrew を入れる
- pyenv をインストール
- Anaconda をインストール
- Jupyer Lab をインストール
ゴールは、**「Jupyer Lab をインストールして、python の勉強環境を作る。」**です。
一緒にやって行きましょう!
Terminalを開く
デスクトップ画面で "command"と"space"ボタンを同時に押してみてください。
これが出てきます。
そしたら、"terminal"と打ってみましょう。
この画面の"ターミナル"というのがよくエンジニアが使っている黒い画面のやつです。そう、あのハッカーっぽいやつです。
"Enter"を押して開きましょう。
なんか白くて見慣れない画面が出て来ましたね。デフォルトでは白いですが、色んな色にカスタマイズできます。また別の機会にカスタマイズについても書いていきたいと思います。
これでみなさんはエンジニア初心者と言えるでしょう。ここからが勝負です。どんどん環境を作っていきましょう。
1. Homebrewを入れる
さて、この白い画面で何をするのかというと...コピペだけです。みなさん得意なはずですねw
HomebrewというpythonやAnacondaのインストール用のソフトをインストールします。ややこしいですよね...
Homebrew をインストールしましょう。
このコマンドをターミナルに貼り付けて"Enter"を押します。($マークは入力しないでください。ターミナル画面に入力することを示しています。他のサイトでも同様に書かれることが多いので覚えておいた方が良いでしょう。)
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
ターミナルがなにやら色々入れてくれてると思います。少し怖いかもしれないですが、安心してください。入ってますよ。っと。
次はこの Homebrew を使っていきます。
2. pyenv のインストール
今度は Homebrew を使って pyenv と Anaconda を入れていきます。
"pyenv" とは Anaconda や python のバージョン管理をしてくれるものです。
後々わかると思いますが、ソフトウェアは随時更新されるのでバージョンアップを繰り返すので用途に合わせてバージョンを変えなくてはいけないことがあります。
じゃあじゃあ Anaconda は?
"Anaconda" は python を使うのに必要なパッケージを管理してくれます。
パッケージってなに?
簡単に言うと"パッケージ"とは、例えば、機械学習とかAI系の話でよく聞く Tensorflow とかのことを言います。"Anaconda" は標準でいくつかのパッケージを入れてくれています。Tensorflow はまだ入っていないですが、行列計算してくれるものとか、グラフを表示してくれるものとかです。
予備知識は以上。あとは**やりながら覚える!**これはエンジニアとして必要な考え方。初めから全部理解しようとしない方が案外良かったりします。
それでは、pyenv を入れましょう。
$ brew install pyenv
最初に "brew" とありますが、これが Homebrew です。これを使えば pyenv をインストールできます。
pyenv が入ったか確認のために、
$ pyenv versions
とターミナルに打ち込みましょう。そうすると、さっきのコマンドの下に
* system
と出てくると思います。pyenv が入っている証拠です。
次は少々難しい、ですがパスを指定します...
正直ここらへんは全力で思考停止してもらいたいw
僕も完全に理解していると言えないので...使うだけなら問題ないのでとりあえずやってみましょう!
$ touch .bash_profile
これで .bash_profile というファイルを作ります。
$ echo PYENV_ROOT=~/.pyenv >> .bash_profile
$ echo export PATH=$PATH:$PYENV_ROOT/bin >> .bash_profile
$ echo eval "$(pyenv init -)" >> .bash_profile
はい、これでパスの指定が完了です。
...次に行きましょう。
$ source ~/.bash_profile
でさっきの変更を反映させます。
3. Anaconda のインストール
次は Anaconda をインストールします。
今回は Anaconda3-5.0.0 をインストールしようと思います。これで自動で python3.6.2 が入ります。(3.6.2 がバージョンを表します。)
python にも色々バージョンがあってややこしいですが、正直 python2 じゃなければ対して問題ないと思います。流行りは python3 です。
$ pyenv install anaconda3-5.0.0
もうなんとなくわかりますね、pyenv でインストールしています。
インストールが終わったら Anaconda が入ったか確認しましょう。
さっきと同様に
$ pyenv versions
そうすると、このコマンドの下に
* system
anaconda3-5.0.0 (set by /Users/{みなさんのユーザー名}/.pyenv/version)
となっていると思います。
実はこの状態だとまだ python3.6.2 は使えないんです。
確認のために
$ python -V
をコマンド画面に打ってみてください。(最後は大文字の V です)
コマンドの下に
python 2.7.10
が出てくると思います。(数字のところは異なる場合がありますが、気にしないでください。)
これは実は MAC に元々入っている python のことを示しています。今回入れた python を使うためには、
system から anaconda3-5.0.0 に変更する必要があります。
これをコマンド画面に打ってみてください。
$ pyenv global anaconda3-5.0.0
そうすると、
system
\* anaconda3-5.0.0 (set by /Users/{みなさんのユーザー名}/.pyenv/version)
になると思います。これで完了!
さっきと同様に python のバージョンを確認してみましょう。
$ python -V
と打つと、下に
python 3.6.2 :: Anaconda custom (64-bit)
が出てくると思います。これで python を使う環境構築は終了しました。
4. Jupyter Lab のインストール
ここまで長かったですね、あとほんの少しで終わります、安心してください。
python を勉強するときにおすすめの環境があります。それは Jupyter Lab です。
自分の書いたコマンドが動くかどうか確かめながら勉強できるので、是非使ってみてください!
インストールの方法は本当に簡単で、
$ conda install jupyterlab
だけです。これはさっきインストールした Anaconda で Jupyter Lab をインストールしているだけです。
インストールが終了したら、Jupyter Lab を実行してみましょう。
$ jupyter lab
と入力するだけで、デフォルトのwebブラウザで開くはずです。
このように左側には自分のフォルダ一覧があって、右側で作業できるようになっています。
これで、python 勉強環境を作るのは終了しました。
次は、Jupyter Lab を使ってスクレイピングに挑戦していきたいと思います。
乞うご期待!!
<注釈>
厳密な表現ができているのかわかりませんが、これを順番通りに試してもらえれば動くと思います。
不適切な表現などがあれば、ご指摘してもらえたらと思います。
参考URL
https://qiita.com/shizuma/items/027167c6257f1c9d2a6f
https://qiita.com/Miggy/items/0290ade68de6009b4ab9
https://note.mu/dychi/n/n2f99a86b9d08