Ubuntu16.04でIPythonを実行するようにJupyterNotebookを設定する方法

提供:Dev Guides
移動先:案内検索

序章

IPythonは、Pythonへのインタラクティブなコマンドラインインターフェイスです。 Jupyter Notebookは、IPythonを含む多くの言語へのインタラクティブなWebインターフェイスを提供します。

この記事では、Jupyter Notebookを実行するためのサーバーのセットアップと、ノートブックへの接続方法と使用方法について説明します。 Jupyterノートブック(または単にノートブック)は、Jupyter Notebookアプリによって生成されたドキュメントであり、両方のコンピューターコードが含まれています(例: Python)と、再現性のある研究の提示に役立つリッチテキスト要素(段落、方程式、図、リンクなど)。

このガイドの終わりまでに、リモートサーバーで実行されているIpythonとJupyterNotebookを使用してPython2.7コードを実行できるようになります。 このチュートリアルでは、データサイエンス、科学計算、および高性能コンピューティングライブラリの多くが3.0以降ではなく2.7をサポートしているため、Python 2(2.7.x)を使用します。

前提条件

このチュートリアルに従うには、次のものが必要です。

  • Ubuntu16.04ドロップレット
  • sudo権限を持つroot以外のユーザー( Ubuntu 16.04 を使用した初期サーバーセットアップでは、これをセットアップする方法について説明しています。)

このチュートリアルのすべてのコマンドは、root以外のユーザーとして実行する必要があります。 コマンドにルートアクセスが必要な場合は、その前にsudoが付きます。 Ubuntu 16.04を使用したサーバーの初期設定では、ユーザーを追加してsudoアクセスを許可する方法について説明しています。

ステップ1—Python2.7とPipをインストールする

このセクションでは、Python2.7とPipをインストールします。

まず、システムのパッケージインデックスを更新します。 これにより、古いパッケージや古いパッケージがインストールに干渉しないようになります。

sudo apt-get update

次に、Python 2.7、Python Pip、およびPythonDevelopmentをインストールします。

sudo apt-get -y install python2.7 python-pip python-dev

python2.7をインストールすると、最新バージョンのPython 2.7に更新され、python-pipをインストールすると、使用するPythonパッケージを管理できるPipがインストールされます。 Jupyterの依存関係の一部はコンパイルが必要な場合があります。その場合、Python C拡張機能をコンパイルする機能が必要になるため、python-devもインストールします。

Pythonがインストールされていることを確認するには:

python --version

これは出力します:

OutputPython 2.7.11+

Python 2.7の最新バージョンによっては、出力が異なる場合があります。

次のコマンドを使用して、pipがインストールされているかどうかを確認することもできます。

pip --version

次のようなものが必要です。

Outputpip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)

同様に、pipのバージョンによっては、出力がわずかに異なる場合があります。

ステップ2—IpythonとJupyterNotebookをインストールする

このセクションでは、IpythonとJupyterNotebookをインストールします。

まず、Ipythonをインストールします。

sudo apt-get -y install ipython ipython-notebook

これで、JupyterNotebookのインストールに進むことができます。

sudo -H pip install jupyter

Ubuntu apt-getリポジトリにあるpipのバージョンによっては、Jupyterをインストールしようとすると次のエラーが発生する場合があります。

OutputYou are using pip version 8.1.1, however version 8.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

その場合は、pipを使用してpipを最新バージョンにアップグレードできます。

sudo -H pip install --upgrade pip

pipをアップグレードしてから、Jupyterのインストールを再試行してください。

sudo -H pip install jupyter

ステップ3—JupyterNotebookを実行する

これで、JupyterNotebookを実行するために必要なものがすべて揃いました。 実行するには、次のコマンドを実行します。

jupyter notebook

JavaScriptがインストールされているシステムでJupyterを実行している場合でも実行されますが、JupyterNotebookにJavaScriptが必要であるというエラーが表示される場合があります。

OutputJupyter Notebook requires JavaScript.
Please enable it to proceed.
...

エラーを無視するには、Qを押してから、Yを押して確認します。

JupyterNotebookのアクティビティのログが端末に印刷されます。 Jupyter Notebookを実行すると、特定のポート番号で実行されます。 実行している最初のノートブックは通常、ポート8888で実行されます。 Jupyter Notebookが実行されている特定のポート番号を確認するには、JupyterNotebookを起動するために使用したコマンドの出力を参照してください。

Output[I NotebookApp] Serving notebooks from local directory: /home/sammy
[I NotebookApp] 0 active kernels 
[I NotebookApp] The Jupyter Notebook is running at: http://localhost:8888/
[I NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).

(ドロップレットではなく)ローカルLinuxコンピューターでJupyter Notebookを実行している場合は、localhost:8888に移動してJupyterNotebookに接続できます。 ドロップレットでJupyterNotebookを実行している場合は、次のセクションで概説するように、SSHトンネリングを使用してサーバーに接続する必要があります。

この時点で、SSH接続を開いたままにしてJupyter Notebookを実行し続けるか、SSHトンネリングを設定したらアプリを終了して再実行することができます。 シンプルに保ち、JupyterNotebookプロセスを停止しましょう。 SSHトンネリングが機能するようになったら、再度実行します。 Jupyter Notebookプロセスを停止するには、CTRL+Cを押し、Yと入力し、ENTERを押して確認します。 以下が表示されます。

Output[C 12:32:23.792 NotebookApp] Shutdown confirmed
[I 12:32:23.794 NotebookApp] Shutting down kernels

ステップ4—SSHトンネリングを使用したサーバーへの接続

このセクションでは、SSHトンネリングを使用してJupyterNotebookWebインターフェースに接続する方法を学習します。 Jupyter NotebookはDropletの特定のポート(:8888:8889など)で実行されているため、SSHトンネリングを使用するとDropletのポートに安全に接続できます。

次の2つのサブセクションでは、1)MacまたはLinuxおよび2)WindowsからSSHトンネルを作成する方法について説明します。 ローカルコンピュータのサブセクションを参照してください。

MacまたはLinuxでのSSHトンネリング

MacまたはLinuxを使用している場合、SSHトンネルを作成する手順は、LinuxまたはMacを使用したDigitalOceanドロップレットでSSHキーを使用する方法ガイドと同様ですが、sshコマンド。 このサブセクションでは、sshコマンドで正常にトンネリングするために必要な追加パラメーターの概要を説明します。

SSHトンネリングは、次のSSHコマンドを実行することで実行できます。

ssh -L 8000:localhost:8888 your_server_username@your_server_ip

sshコマンドはSSH接続を開きますが、-L は、ローカル(クライアント)ホストの指定されたポートがリモート側(ドロップレット)の指定されたホストとポートに転送されることを指定します。 これは、2番目のポート番号で実行されているものはすべて(つまり、 ドロップレットの8888)は、最初のポート番号(つまり、 ローカルコンピュータの8000)。 8888をJupyterNotebookが実行されているポートに変更する必要があります。 オプションで、ポート8000を選択したものに変更します(たとえば、8000が別のプロセスで使用されている場合)。 8000以上のポート(つまり、80018002など)を使用して、別のプロセスですでに使用されているポートを使用しないようにします。 server_usernameはユーザー名です(つまり sammy)を作成したドロップレットで、your_server_ipはドロップレットのIPアドレスです。 たとえば、ユーザー名sammyとサーバーアドレス111.111.111.111の場合、コマンドは次のようになります。

ssh -L 8000:localhost:8888 [email protected]

ssh -Lコマンドを実行してもエラーが表示されない場合は、JupyterNotebookを実行できます。

jupyter notebook

次に、ローカルマシンのWebブラウザーから、http://localhost:8000(または選択したポート番号)を使用してJupyterNotebookWebインターフェイスを開きます。

WindowsとPuttyを使用したSSHトンネリング

Windowsを使用している場合は、 DigitalOcean Droplets(Windowsユーザー)でPuTTYでSSHキーを使用する方法で概説されているように、Puttyを使用してSSHトンネルを簡単に作成することもできます。

まず、次のように、ホスト名としてサーバーのURLまたはIPアドレスを入力します。

次に、左ペインの下部にある SSH をクリックしてメニューを展開し、トンネルをクリックします。 ローカルマシンでJupyterにアクセスするために使用するローカルポート番号を入力します。 8000以上(80018002など)を選択して、他のサービスで使用されるポートを回避し、宛先をlocalhost:8888に設定します。ここで[X143X ] は、JupyterNotebookが実行されているポートの番号です。 次に、追加ボタンをクリックすると、ポートが転送ポートリストに表示されます。

最後に、 Open ボタンをクリックして、SSH経由でサーバーに接続し、目的のポートをトンネリングします。 Webブラウザでhttp://localhost:8000(または選択したポート)に移動して、サーバーで実行されているJupyterNotebookに接続します。

ステップ5—JupyterNotebookを使用する

このセクションでは、JupyterNotebookの使用の基本について説明します。 この時点で、Jupyter Notebookが実行されているはずであり、Webブラウザーを使用して接続されているはずです。 Jupyter Notebookは非常に強力で、多くの機能を備えています。 このセクションでは、ノートブックの使用を開始するための基本的な機能のいくつかについて概説します。 自動的に、Jupyter Notebookは、実行元のディレクトリ内のすべてのファイルとフォルダーを表示します。

新しいノートブックファイルを作成するには、右上のプルダウンメニューから New > Python2を選択します。

これにより、ノートブックが開きます。 これで、セルでPythonコードを実行したり、セルをマークダウンに変更したりできます。 たとえば、上部のナビゲーションバーからセル>セルタイプ>マークダウンをクリックして、最初のセルを変更してマークダウンを受け入れます。 Markdownを使用してメモを記述できるようになりました。また、$$記号の間に配置することで、LaTeXで記述された方程式を含めることもできます。 たとえば、セルをマークダウンに変更した後、セルに次のように入力します。

# Simple Equation

Let us now implement the following equation:
$$ y = x^2$$

where $x = 2$

マークダウンをリッチテキストに変換するには、CTRL+ENTERを押すと、次のような結果になります。

マークダウンセルを使用して、メモを作成し、コードを文書化できます。 その簡単な方程式を実装して、結果を出力してみましょう。 Insert > Insert CellBelow を選択してセルを挿入し、次のコードを入力します。

x = 2
y = x*x
print y

コードを実行するには、CTRL+ENTERを押します。 結果は次のようになります。

これで、他のPython開発環境と同じように、ライブラリを含めてノートブックを使用できるようになりました。

結論

おめでとう! これで、Droplet上で実行されているJupyterノートブックを使用してマークダウンを使用して再現可能なPythonコードとメモを記述できるようになります。 Jupyterノートブックのクイックツアーを取得するには、上部のナビゲーションメニューからヘルプ>ユーザーインターフェイスツアーを選択します。