Python"再"入門1 実行環境の構築


はじめに

Python再入門ということで、Pythonの基本文法などの復習用に記事を書いていきます。

私がプログラミングを始めたちょうど1年前、当時の私はPythonを使って何か作ってみようと手を動かしていました。
それから一年が経った今は主にRubyを使ってWebアプリの開発を行っています。

ここにきてもう一度Pythonを復習しようと思ったきっかけは、就職先が決まったことにあります。
私は来年の4月に就職予定なのですが、就職予定の企業では機械学習や深層学習を使ったサービスを開発しています。
私は機械学習エンジニアとして就職するわけではありませんが、「触ったことある」ぐらいにはなっていた方がサービスの理解もしやすいのかなと考えています。
Pythonは機械学習系のライブラリも充実しているという印象があるので、まずはPythonを学ぶことから始めることにしました。

冒頭でお伝えした通り、私がプログラミングに入門した際に初めて触った言語はPythonなのですが、忘れっぽい私は文法などを完全に忘れてしまったので、今回記事を残しながら再入門をしていこうと思います。

対象読者

  • プログラミングの経験があり、Pythonを初めてみたい人
  • 機械学習などに興味があり、Pythonから勉強してみようと考えている人

注意

私は、Pythonを使って機械学習や深層学習の実装をしてみたいという理由でまずはPythonの文法を復習するところからスタートしています。
注意点として、"Pythonでコードがかける" = "機械学習ができる"ではありません。
機械学習や深層学習に興味はあるけど、概念がわかれば実装まではしなくていいや、という方はそういった目的の記事や書籍を参考にされたら良いかと思います。

↓ここからが本題

Python実行環境の構築

Jupyter Notebookの導入

Jupyter Notebookを使うと、Webブラウザを使ってPythonのコードを入力して実行することができます。
インタラクティブシェルのような感じで書いたコードを実行することができ、手を動かしてPythonについて学ぶにはとても便利です。

Jupyter Notebookを使えるようにするにはAnaconda Navigatorをインストールするのが早いです。

※Anaconda Navigatorとは?

Anaconda Navigatorとは、Pythonの開発に必要な多くのソフトがまとめられているディストリビューション。
Jupyter Notebookやspyderといった便利ツールが最初から入っています。

Anaconda Navigatorインストール手順

mac用インストール手順(公式)
win用インストール手順(公式)

上記の手順にしたがってインストールしたAnaconda Navigatorを起動すれば、メニューの中にJupyter Notebookが表示されているはずです。

Jupyter Notebookの基本的な使い方については他の記事に投げることにします。

データ分析で欠かせない!Jupyter Notebookの使い方【初心者向け】

Dockerコンテナ内にJupyter Notebookを導入

ここからはPCの環境を汚したくない方向けの内容です。
特に気にならない方は上記の方法でJupyter Notebookをインストールすれば問題ありません。

dockerを使ったjupyter notebookの環境構築ですが、こちらはmacユーザー向けの手順になりますのでご容赦ください。

1. Dockerイメージをとってくる

Docker Hubにimageが公開されているのでこちらを使用します。
jupyter/scipy-notebook
jupyter/docker-stacks

今回は作業用のディレクトリとして、ipython_notebookを作成して作用していきます。

ちなみにIPython NotebookはJupyter Notebookの古い名前です。
元々はPython向けのツールでしたが、現在はRubyなど他のスクリプト言語を実行できるようにもなり改名したそうです。

イメージをとってくる。

ipython_notebook
$docker pull jupyter/scipy-notebook
$docker image ls #jupyter/scipy-notebookが表示されることを確認

最後のコマンドを実行してjupyter/scipy-notebookが表示されていればOKです。

2.ホストのディレクトリをマウント(する準備)

作業をしていくに当たって、ホストのディレクトリをマウントしておきたいので、/ipython_notebook以下にcodeディレクトリを作成します。

まず、Dockerが/UsersがDocker for Macとの共有ディレクトリになっていることを確認します。(今回はipython_notebookディレクトリがUsers以下に存在しているため)
確認方法についてはこちらの記事がわかりやすかったため参照されてください。

ipython_notebook
$mkdir code
$cd code
$pwd #こちらのコマンドの結果を後ほど使用します。

3. コンテナの作成

次に1でとってきたイメージからコンテナを作成します。
また、コンテナ作成時に、2で作成したcodeディレクトリをvolumeとしてマウントします。

以下のコードを実行すれば、2で作成したディレクトリをマウントしたコンテナが作成されます。
ここで注意が必要なのは/Users/.../ipython_notebook/code...部分は人によって異なる点です。
ボリュームの指定は-v ホストディレクトリのパス:コンテナ内のディレクトリパスとなるので、ここでのホストディレクトリのパスには先ほどpwdコマンドを実行した結果をペーストしてください。

ipython_notebook
$docker run -p 8888:8888 --name jupyter -v \
/Users/.../ipython_notebook/code:/home/jovyan/work \
jupyter/scipy-notebook

上記のコマンドを実行すると次のような実行結果が出ると思うので、token=以下の文字列をコピーしておきます。

-p 8888:8888のオプションをつけたため、任意のブラウザからhttp://localhost:8888にアクセスすると認証のページが開きます。
ここで↑でコピーした認証用のトークンを入力して、新規でパスワードを入力しログインしてください。(設定したパスワードは次回以降のログインで必要になります。)

2回目移行の立ち上げ

上記で実行したコンテナを停止する際にはCtrl Cコンテナが停止します。
2回目以降にコンテナを起動する際にはdocker start jupyterを実行すれば立ち上がります。
コンテナを停止する際にはdocker stop jupyterを実行すれば停止します。

ipython_notebook
#上記で実行したコンテナを停止する場合
Ctrl + C
#2回目以降コンテナを立ち上げる場合
$docker container start jupyter
#docker container startで起動したコンテナを停止する場合
$docker container stop jupyter

以上でDockerを使用した場合のJupyter Notebookの環境構築は終了になります。

次回からはPythonの基礎文法について書いていきます。

参考