リモートサーバーにJupyterノートブックをインストール、実行、接続する方法

_著者はhttps://www.brightfunds.org/organizations/apache-software-foundation[the Apache Software Foundation]を選択し、https://do.co/w4do-cta [Write for DOnations]の一環として100ドルの寄付を受け取りました]プログラム。

前書き

Jupyter Notebookは、https://を含む40を超えるプログラミング言語でコンピューターコードを記述および実行できるオープンソースのインタラクティブなWebアプリケーションです。 www.python.org/[Python]、https://www.r-project.org/[R]、https://julialang.org/[Julia]、およびhttps://www.scala-lang.org / [スカラ]。 Project Jupyterの製品であるJupyter Notebookは、コードの小さなスニペットを作成して実行し、結果を返すことができるため、反復コーディングに役立ちます。

Jupyter Notebookは、単に「ノートブック」と呼ばれるノートブックドキュメントを作成する機能を提供します。 Jupyter Notebookから作成されたノートブックは、リッチテキスト要素、方程式、コード、およびそれらの出力(図、表、対話型プロット)を含む、共有可能で再現可能な研究文書です。 ノートブックは、生のコードファイル、HTMLまたはPDFドキュメントにエクスポートしたり、インタラクティブなスライドショーやWebページの作成に使用することもできます。

この記事では、Ubuntu 18.04 WebサーバーにJupyter Notebookアプリケーションをインストールおよび構成する方法と、ローカルコンピューターから接続する方法について説明します。 さらに、Jupyter Notebookを使用してサンプルPythonコードを実行する方法についても説明します。

前提条件

このチュートリアルを完了するには、次のものが必要です。

  • 1つのUbuntu 18.04サーバーインスタンス。 このサーバーには、sudo特権を持つ非rootユーザーとファイアウォールが設定されている必要があります。 これを設定するには、https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-18-04 [初期サーバーセットアップガイド]に従ってください。

  • Python 3、pip、およびサーバーにインストールされたPython `+ venv +`モジュール。 これを行うには、https://www.digitalocean.com/community/tutorials/how-to-install-python-3-and-set-up-a-programming-environment-on-のチュートリアルのステップ1および2に従います。 an-ubuntu-18-04-server [Ubuntu 18.04でPython 3をインストールしてローカルプログラミング環境をセットアップする方法]。

  • Jupyter Notebookへのアクセスに使用するローカルコンピューターで実行されている最新のWebブラウザー。

さらに、ローカルコンピューターでWindowsを実行している場合は、サーバーへのSSHトンネルを確立するために、ローカルコンピューターにPuTTYをインストールする必要があります。 PuTTYでSSHキーを作成する方法のガイドに従ってくださいWindows] PuTTYをダウンロードしてインストールします。

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

ノートブックは小さなコードスニペットの作成、実行、結果の表示に使用されるため、最初にプログラミング言語サポートを設定する必要があります。 Jupyter Notebookは、言語固有の_kernel_を使用します。これは、コードを実行およびイントロスペクトするコンピュータープログラムです。 Jupyter Notebookにはhttps://github.com/jupyter/jupyter/wiki/Jupyter-kernels [異なる言語の多くのカーネル]があり、デフォルトはhttps://ipython.org/[IPython]です。 このチュートリアルでは、Ipyカーネルを介してPythonコードを実行するようにJupyter Notebookをセットアップします。

前提条件セクションにリンクされているチュートリアルに従っていると仮定すると、https://www.digitalocean.com/community/tutorials/how-to-install-python-3-and-set-up-a-local-programmingが必要です。 -environment-on-ubuntu-18-04 [Python 3、pip、およびインストールされた仮想環境]。 このガイドの例は、Python 3のインストールに関する前提条件のチュートリアルで使用されている規則に従っています。Python3は仮想環境に「 + my_env +」という名前を付けていますが、自由に名前を変更してください。

仮想環境をアクティブ化することから始めます。

source /bin/activate

これに続いて、プロンプトの前に環境の名前が付けられます。

仮想環境にいるので、先に進み、Jupyter Notebookをインストールします。

python3 -m pip install jupyter

インストールが成功した場合、次のような出力が表示されます。

Output. . .
Successfully installed MarkupSafe-1.0 Send2Trash-1.5.0 backcall-0.1.0 bleach-2.1.3 decorator-4.3.0 entrypoints-0.2.3 html5lib-1.0.1 ipykernel-4.8.2 ipython-6.4.0 ipython-genutils-0.2.0 ipywidgets-7.2.1 jedi-0.12.0 jinja2-2.10 jsonschema-2.6.0 jupyter-1.0.0 jupyter-client-5.2.3 jupyter-console-5.2.0 jupyter-core-4.4.0 mistune-0.8.3 nbconvert-5.3.1 nbformat-4.4.0 notebook-5.5.0 pandocfilters-1.4.2 parso-0.2.0 pexpect-4.5.0 pickleshare-0.7.4 prompt-toolkit-1.0.15 ptyprocess-0.5.2 pygments-2.2.0 python-dateutil-2.7.3 pyzmq-17.0.0 qtconsole-4.3.1 simplegeneric-0.8.1 six-1.11.0 terminado-0.8.1 testpath-0.3.1 tornado-5.0.2

これで、Jupyter Notebookがサーバーにインストールされました。 次に、アプリケーションの実行方法について説明します。

ステップ2-Jupyterノートブックを実行する

Jupyter Notebookは、SSHトンネルとお気に入りのWebブラウザーを使用してローカルマシンから接続できるように、VPSから実行する必要があります。

Jupyter Notebookサーバーを実行するには、次のコマンドを入力します。

jupyter notebook

このコマンドを実行すると、次のような出力が表示されます。

Output[I 19:46:22.031 NotebookApp] Writing notebook server cookie secret to /home//.local/share/jupyter/runtime/notebook_cookie_secret
[I 19:46:22.365 NotebookApp] Serving notebooks from local directory: /home//environments
[I 19:46:22.365 NotebookApp] 0 active kernels
[I 19:46:22.366 NotebookApp] The Jupyter Notebook is running at:
[I 19:46:22.366 NotebookApp] http://localhost:8888/?token=
[I 19:46:22.366 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[W 19:46:22.366 NotebookApp] No web browser found: could not locate runnable browser.
[C 19:46:22.367 NotebookApp]

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

出力で、「+ Webブラウザーが見つかりません+」という警告があることに気付くかもしれません。 アプリケーションはサーバーで実行されており、Webブラウザーをインストールしていない可能性が高いため、これは予想されることです。 このガイドでは、次のセクションでSSHトンネリングを使用してサーバー上のノートブックに接続する方法について説明します。

今のところ、 `+ CTRL + C `を押してから ` y `を押し、次に ` ENTER +`を押して確認することでJupyter Notebookを終了します。

OutputShutdown this notebook server (y/[n])?
[C 20:05:47.654 NotebookApp] Shutdown confirmed
[I 20:05:47.654 NotebookApp] Shutting down 0 kernels

次に、 `+ exit +`コマンドを使用してサーバーからログアウトします。

exit

サーバーでJupyter Notebookを実行しました。 ただし、アプリケーションにアクセスしてノートブックの操作を開始するには、ローカルコンピューターのSSHトンネリングとWebブラウザーを使用してアプリケーションに接続する必要があります。

手順3-SSHトンネリングを使用したJupyterノートブックアプリケーションへの接続

_SSHトンネリング_は、サーバーで実行されているJupyter Notebookアプリケーションに接続するためのシンプルで高速な方法です。 セキュアシェル(より一般的にhttps://www.digitalocean.com/community/tutorials/ssh-essentials-working-with-ssh-servers-clients-and-keys[SSH]として知られている)は、ネットワークプロトコルです。セキュリティで保護されていないネットワーク経由でリモートサーバーに安全に接続します。

SSHプロトコルには、サーバーの特定のポート番号で実行されている特定のアプリケーションをローカルコンピューターの特定のポート番号にトンネリングできるポート転送メカニズムが含まれています。 サーバーで実行されているJupyter Notebookアプリケーション(デフォルトではポート `+ 8888 +`上)をローカルコンピューターのポートに安全に「転送」する方法を学習します。

SSHトンネルの確立に使用する方法は、ローカルコンピューターのオペレーティングシステムによって異なります。 お使いのマシンに最も関連する以下のサブセクションにジャンプしてください。

macOSまたはLinuxを使用したSSHトンネリング

ローカルコンピューターでLinuxまたはmacOSを実行している場合、1つのコマンドを実行するだけでSSHトンネルを確立できます。

+ ssh +`はSSH接続を開くための標準コマンドですが、 `+ -L +`ディレクティブとともに使用すると、ローカルホスト(つまり、ローカルマシン)上の特定のポートが指定されたホストとリモートホスト上のポート(この場合はサーバー)。 つまり、リモートサーバーの指定されたポート( `+ 8888 +、Jupyter Notebookのデフォルトポート)で実行されているものは、ローカルコンピューターの指定されたポート(コマンド例では++)に表示されます。

独自のSSHトンネルを確立するには、次のコマンドを実行します。 たとえば、 `+ 8000 `が別のプロセスで使用されている場合は、ポート `+`を任意の選択に変更してください。 これらのポート番号が別のプロセスで使用される可能性は低いため、「+ 8000+」以上のポートを使用することをお勧めします。 必ず自分のサーバーのIPアドレスとサーバーの非ルートユーザーの名前を含めてください。

ssh -L :localhost:8888 @

このコマンドからエラーがない場合、リモートサーバーにログインします。 そこから、仮想環境をアクティブ化します。

source ~/environments//bin/activate

次に、Jupyter Notebookアプリケーションを実行します。

jupyter notebook

Jupyter Notebookに接続するには、お気に入りのWebブラウザーを使用して、ローカルホストのローカルポート「+ http:// localhost:+ `」に移動します。 Jupyter Notebookに接続したら、手順4に進んで使用方法を学習します。

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

PuTTYは、https://www.digitalocean.com/community/tutorials/how-to-use-ssh-keys-with-putty-on-digitalocean-droplets-windowsに使用できるWindows用のオープンソースSSHクライアントです-users [サーバーに接続]。 WindowsマシンにPuTTYをダウンロードしてインストールした後(前提条件のチュートリアルを参照)、プログラムを開き、以下に示すようにサーバーのURLまたはIPアドレスを入力します。

image:https://assets.digitalocean.com/articles/jupyter_notebook/JN_putty_1.png [サーバーURLまたはIPをPuttyに入力]

次に、左ペインの下部にある[* + SSH *]をクリックし、[*トンネル]をクリックします。 このウィンドウで、ローカルマシンのJupyterへのアクセスに使用するポートを入力します( ++)。 これらのポート番号が別のプロセスで使用される可能性は低いため、「+ 8000+」以上のポートを使用することをお勧めします。 ただし、別のプロセスで「8000」が使用されている場合は、別の未使用のポート番号を選択します。 次に、ポート `+ 8888 `がJupyter Notebookを実行しているポートであるため、宛先を ` localhost:8888 +`に設定します。 次に、[追加]ボタンをクリックすると、[転送ポート]フィールドにポートが表示されます。

image:https://assets.digitalocean.com/articles/jupyter_notebook/JN_putty_2.png [PuttyでSSHトンネルを構成]

最後に、[開く]ボタンをクリックします。 これにより、SSH経由でマシンがサーバーに接続され、目的のポートがトンネリングされます。 エラーが表示されない場合は、仮想環境をアクティブにします。

source ~/environments//bin/activate

次に、Jupyter Notebookを実行します。

jupyter notebook

次に、お気に入りのWebブラウザーのローカルポート(たとえば、「+ http:// localhost:+」(または選択したポート番号))に移動して、サーバーで実行されているJupyter Notebookインスタンスに接続します。 Jupyter Notebookに接続したら、手順4に進んで使用方法を学習します。

ステップ4-Jupyter Notebookの使用

Jupyter Notebookは、Webブラウザーからアクセスすると、ファイルブラウザーとして機能するノートブックダッシュボードを提供し、ノートブックを作成、編集、および探索するためのインターフェイスを提供します。 これらのノートブックは、(。ipynb + `ファイル拡張子で保存された)ドキュメントと考えてください。このドキュメントには、任意の数の個別のセルが入力されます。 各セルには、コードの実行やレンダリングされたテキストの記述に使用できるインタラクティブなテキストエディターがあります。 さらに、ノートブックを使用すると、方程式を記述して実行したり、画像やインタラクティブプロットなどの他のリッチメディアを含めたり、さまざまな形式( ` .ipyb `、 ` .pdf `、 ` .py + `)。 これらの機能の一部を説明するために、ノートブックダッシュボードからノートブックファイルを作成し、方程式を含む簡単なテキストボードを作成し、基本的なPython 3コードを実行します。

この時点で、SSHトンネルを使用してサーバーに接続し、サーバーからJupyter Notebookアプリケーションを起動しているはずです。 `+ http:// localhost:+`に移動すると、ログインページが表示されます。

image:https://assets.digitalocean.com/articles/jupyter_notebook/JN_login_screen_small.png [Jupyter Notebookログイン画面]

サーバーの `+ jupyter notebook +`を実行した後、上部の[* Password or token *]フィールドに出力に表示されるトークンを入力します。

Output[I 20:35:17.004 NotebookApp] Writing notebook server cookie secret to /run/user/1000/jupyter/notebook_cookie_secret
[I 20:35:17.314 NotebookApp] Serving notebooks from local directory: /home/sammy
[I 20:35:17.314 NotebookApp] 0 active kernels
[I 20:35:17.315 NotebookApp] The Jupyter Notebook is running at:
[I 20:35:17.315 NotebookApp] http://localhost:8888/?token=
[I 20:35:17.315 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[W 20:35:17.315 NotebookApp] No web browser found: could not locate runnable browser.
[C 20:35:17.316 NotebookApp]
. . .

または、端末の出力からそのURLをコピーして、ブラウザーのアドレスバーに貼り付けることもできます。

Jupyterノートブックには、実行元のディレクトリに保存されているすべてのファイルとフォルダーが自動的に表示されます。 ノートブックダッシュボードの右上にある[新規作成]をクリックしてから[Python 3]をクリックして、新しいノートブックファイルを作成します。

image:https://assets.digitalocean.com/articles/jupyter_notebook/JN_new_python3.png [新しいPython3ノートブックを作成]

この新しいノートブック内で、上部のナビゲーションバーの* Cell *> * Cell Type *> * Markdown *をクリックして、最初のセルを変更してマークダウン構文を受け入れます。 マークダウンに加えて、このセルタイプを使用すると、LaTeXで方程式を記述することもできます。 たとえば、マークダウンに変更した後、セルに次を入力します。

# Simple Equation

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

where $x = 2$

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

image:https://assets.digitalocean.com/articles/jupyter_notebook/JN_sample_equation.png [サンプル式をリッチテキストに変換]

マークダウンセルを使用してメモを作成し、コードを文書化できます。

それでは、簡単な方程式を実装して結果を出力しましょう。 セルを挿入するには、[挿入]> [セルを下に挿入]をクリックします。 この新しいセルに、次のコードを入力します。

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

コードを実行するには、 `+ CTRL + ENTER +`を押すと、次のようになります:

image:https://assets.digitalocean.com/articles/jupyter_notebook/JN_sample_equation2.png [方程式の解法]

これらは、Jupyter Notebookでできることの比較的単純な例です。 ただし、多くの潜在的なユースケースを持つ非常に強力なアプリケーションです。 ここから、他のPython開発環境と同様に、Pythonライブラリを追加してノートブックを使用できます。

結論

これで、リモートサーバーで実行されているJupyter Notebookを使用して、再現可能なPythonコードとテキストを作成できるはずです。 Jupyter Notebookのクイックツアーを取得するには、上部ナビゲーションバーの[ヘルプ]をクリックし、次に示すように[ユーザーインターフェイスツアー]を選択します。

image:https://assets.digitalocean.com/articles/jupyter_notebook/JN_help_tour.png [Jupyter Notebookヘルプツアーの検索]

興味がある場合は、http://jupyter.org/documentation [Project Jupyter documentation]をご覧になり、Jupyter Notebookの詳細をご覧ください。 さらに、https://www.digitalocean.com/community/tutorial_series/how-to-code-in-python-3 [Python 3でのコーディング方法の学習]により、このチュートリアルで学んだことを基に構築できます。