Debian 9でPython 3を使用してJupyterノートブックをセットアップする方法

前書き

Jupyter Notebookは、Webアプリケーションとしてインタラクティブコンピューティング用のコマンドシェルを提供します。 このツールは、Python、Julia、R、Haskell、Rubyなどの複数の言語で使用できます。 多くの場合、データの操作、統計モデリング、機械学習に使用されます。

このチュートリアルでは、Debian 9サーバーから実行するようにJupyter Notebookを設定する方法と、ノートブックに接続して使用する方法を説明します。 Jupyterノートブック(または単にノートブック)は、Jupyterノートブックアプリによって作成されたドキュメントであり、再現可能な研究の提示と共有に役立つコンピューターコードとリッチテキスト要素(段落、方程式、図、リンクなど)の両方が含まれています。

このガイドの最後までに、リモートサーバーで実行されているJupyter Notebookを使用してPython 3コードを実行できるようになります。

前提条件

このガイドを完了するには、基本的なファイアウォールを備えた新しいDebian 9サーバーインスタンスと、sudo特権が設定された非rootユーザーが必要です。 Debian 9での初期サーバー設定ガイドを実行すると、これを設定する方法を学ぶことができます。

ステップ1-PipおよびPythonヘッダーをインストールする

プロセスを開始するには、必要なすべてのアイテムをDebianリポジトリからダウンロードしてインストールします。 Pythonパッケージマネージャー `+ pip +`を使用して、追加のコンポーネントを少し後でインストールします。

最初にローカルの `+ apt +`パッケージインデックスを更新し、次にパッケージをダウンロードしてインストールする必要があります。

sudo apt update

次に、いくつかのJupyterの依存関係で使用される `+ pip +`とPythonヘッダーファイルをインストールします。

sudo apt install python3-pip python3-dev

Debian 9(「ストレッチ」)にはPython 3.5がプリインストールされています。

これで、JupyterをインストールするPython仮想環境のセットアップに進むことができます。

ステップ2-Jupyter用のPython仮想環境を作成する

Python 3、そのヘッダーファイル、および準備が整った `+ pip +`が用意できたので、簡単に管理できるPython仮想環境を作成できます。 Jupyterをこの仮想環境にインストールします。

これを行うには、最初に `+ virtualenv `コマンドにアクセスする必要があります。 これは ` pip +`でインストールできます。

`+ pip +`をアップグレードし、次を入力してパッケージをインストールします。

sudo -H pip3 install --upgrade pip
sudo -H pip3 install virtualenv

`+ virtualenv +`をインストールすると、環境の形成を開始できます。 プロジェクトファイルを保存できるディレクトリを作成して移動します。

mkdir ~/
cd ~/

プロジェクトディレクトリ内で、次のように入力してPython仮想環境を作成します。

virtualenv

これにより、「」ディレクトリ内に「」というディレクトリが作成されます。 内部では、Pythonのローカルバージョンと `+ pip +`のローカルバージョンがインストールされます。 これを使用して、Jupyter用の分離されたPython環境をインストールおよび構成できます。

Jupyterをインストールする前に、仮想環境をアクティブ化する必要があります。 次のように入力して、それを行うことができます。

source /bin/activate

プロンプトが変わり、Python仮想環境内で操作していることを示す必要があります。 次のようになります: +()@:〜/ $ +

これで、Jupyterをこの仮想環境にインストールする準備が整いました。

ステップ3-Jupyterのインストール

仮想環境がアクティブになっている状態で、 `+ pip +`のローカルインスタンスでJupyterをインストールします。

pip install jupyter

この時点で、Jupyterの実行に必要なすべてのソフトウェアが正常にインストールされました。 これで、ノートブックサーバーを起動できます。

ステップ4-Jupyter Notebookを実行する

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

jupyter notebook

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

Output[I 21:23:21.198 NotebookApp] Writing notebook server cookie secret to /run/user/1001/jupyter/notebook_cookie_secret
[I 21:23:21.361 NotebookApp] Serving notebooks from local directory: /home//
[I 21:23:21.361 NotebookApp] The Jupyter Notebook is running at:
[I 21:23:21.361 NotebookApp] http://localhost:/?token=
[I 21:23:21.361 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[W 21:23:21.361 NotebookApp] No web browser found: could not locate runnable browser.
[C 21:23:21.361 NotebookApp]

   Copy/paste this URL into your browser when you connect for the first time,
   to login with a token:
       http://localhost:/?token=

Jupyter NotebookをローカルのDebianコンピューター(Droplet上ではなく)で実行している場合、表示されたURLにナビゲートしてJupyter Notebookに接続できます。 ドロップレットでJupyter Notebookを実行している場合は、次のセクションで説明するように、SSHトンネリングを使用してサーバーに接続する必要があります。

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

Output[C 21:28:28.512 NotebookApp] Shutdown confirmed
[I 21:28:28.512 NotebookApp] Shutting down 0 kernels

次に、ノートブックにアクセスできるようにSSHトンネルを設定します。

手順5-SSHトンネリングを使用してサーバーに接続する

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

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

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

MacまたはLinuxを使用している場合、SSHトンネルを作成する手順は、SSHを使用してリモートサーバーにログインするのと似ていますが、 `+ ssh `コマンドに追加のパラメーターがある点が異なります。 このサブセクションでは、正常にトンネリングするために ` ssh +`コマンドで必要な追加パラメーターの概要を説明します。

SSHトンネリングは、新しいローカルターミナルウィンドウで次のSSHコマンドを実行することで実行できます。

ssh -L :localhost: @

`+ ssh `コマンドはSSH接続を開きますが、 ` -L +`はローカル(クライアント)ホスト上の指定されたポートがリモート側(サーバー)上の指定されたホストとポートに転送されることを指定します。 これは、2番目のポート番号で実行されているもの(たとえば、 サーバーの「」は最初のポート番号に表示されます(例: ローカルコンピューターで「」)。

必要に応じて、ポート `++`を任意のポートに変更して、別のプロセスで既に使用されているポートを使用しないようにします。

「」はユーザー名です(例: )作成したサーバー上で、「」はサーバーのIPアドレスです。

たとえば、ユーザー名「」とサーバーアドレス「」の場合、コマンドは次のようになります。

ssh -L :localhost: @

`+ ssh -L +`コマンドの実行後にエラーが表示されない場合は、プログラミング環境に移動してJupyter Notebookを実行できます。

jupyter notebook

URLを含む出力を受け取ります。 ローカルマシンのWebブラウザーから、 `+ http:// localhost:8888 `で始まるURLを使用してJupyter Notebook Webインターフェースを開きます。 トークン番号が含まれていることを確認するか、 ` http:// localhost:8888 +`でプロンプトが表示されたらトークン番号文字列を入力します。

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

Windowsを使用している場合、https://www.putty.org/ [Putty]を使用してSSHトンネルを作成できます。

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

image:https://assets.digitalocean.com/articles/jupyter_notebook/set_hostname_putty.png [SSHトンネルのホスト名を設定]

次に、左ペインの下部にある[* SSH *]をクリックしてメニューを展開し、[*トンネル]をクリックします。 ローカルマシンのJupyterへのアクセスに使用するローカルポート番号を入力します。 他のサービスで使用されるポートを避けるために「」以上を選択し、宛先を「+ localhost:+」として設定します。「」はJupyter Notebookが実行されているポートの番号です。

[追加]ボタンをクリックすると、ポートが[転送ポート]リストに表示されます。

image:https://assets.digitalocean.com/articles/jupyter_notebook/forwarded_ports_putty.png [転送されたポートのリスト]

最後に、[開く]ボタンをクリックしてSSH経由でサーバーに接続し、目的のポートをトンネルします。 Webブラウザーで + http:// localhost:+(または選択したポート)に移動して、サーバーで実行されているJupyter Notebookに接続します。 トークン番号が含まれていることを確認するか、「+ http:// localhost:8000+」でプロンプトが表示されたらトークン番号文字列を入力します。

ステップ6-Jupyter Notebookの使用

このセクションでは、Jupyter Notebookの使用の基本について説明します。 現在Jupyter Notebookを実行していない場合は、 `+ jupyter notebook`コマンドで起動します。

これで、Webブラウザを使用してそれに接続する必要があります。 Jupyter Notebookは非常に強力で、多くの機能を備えています。 このセクションでは、ノートブックの使用を開始するための基本的な機能のいくつかを概説します。 Jupyter Notebookには、実行元のディレクトリ内のすべてのファイルとフォルダーが表示されるため、プロジェクトで作業している場合は、プロジェクトディレクトリから起動するようにしてください。

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

image:https://assets.digitalocean.com/articles/eng_python/JupyterNotebookPy3/jupyter-notebook-new.png [新しいPython 3ノートブックを作成]

これにより、ノートブックが開きます。 これで、セルでPythonコードを実行したり、セルをマークダウンに変更したりできます。 たとえば、トップナビゲーションバーの* Cell *> * Cell Type *> * Markdown *をクリックして、Markdownを受け入れるように最初のセルを変更します。 Markdownを使用してメモを書くことができ、https://www.latex-project.org/ [LaTeX]で記述された方程式を `+ $$ +`シンボルの間に入れることで含めることもできます。 たとえば、マークダウンに変更した後、セルに次を入力します。

# Simple Equation

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

where $x = 2$

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

image:https://assets.digitalocean.com/articles/jupyter_notebook/markdown_results.png [マークダウンの結果]

マークダウンセルを使用してメモを作成し、コードを文書化できます。 その簡単な方程式を実装して結果を出力しましょう。 一番上のセルをクリックし、「+ ALT + ENTER +」を押してその下にセルを追加します。 新しいセルに次のコードを入力します。

x = 2
y = x**2
print(y)

コードを実行するには、 `+ CTRL + ENTER`を押します。 次の結果が表示されます。

image:https://assets.digitalocean.com/articles/eng_python/JupyterNotebookPy3/jupyter-notebook-md-python.png [単純な方程式の結果]

https://www.digitalocean.com/community/tutorials/how-to-import-modules-in-python-3 [モジュールのインポート]を使用して、他のPython開発環境と同じようにノートブックを使用できるようになりました。 !

結論

おめでとうございます。 これで、Jupyter Notebookを使用して、Markdownで再現可能なPythonコードとノートを作成できるはずです。 インターフェース内からJupyter Notebookのクイックツアーを取得するには、上部のナビゲーションメニューから[ヘルプ]> [ユーザーインターフェースツアー]を選択して詳細を確認します。

ここから、https://www.digitalocean.com/community/tutorial_series/time-series-visualization-and-forecasting [時系列の可視化と予測]でシリーズを読むことに興味があるかもしれません。