Ubuntu 22.04でPython 3用のJupyter Notebookをセットアップする方法

紹介

Jupyter Notebookは、ウェブアプリケーションとしての対話型コンピューティング用のコマンドシェルを提供します。このツールは、Python、Julia、R、Haskell、Rubyなど、いくつかの言語と一緒に使用できます。データの操作、統計モデリング、機械学習などでよく使われます。

このチュートリアルでは、Jupyter Notebookをローカルで実行する方法とUbuntu 22.04サーバーから実行する方法について説明し、ノートブックへの接続と使用方法を教えます。Jupyterノートブック(または単にノートブック)は、Jupyter Notebookアプリケーションによって生成されるドキュメントで、コンピューターコードとリッチテキスト要素(段落、数式、図、リンクなど)の両方を含み、再現可能な研究の提示と共有を支援します。

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

前提条件

このチュートリアルに従うには、Python 3プログラミング環境とPythonのvenvモジュールが必要です。

このチュートリアルのすべてのコマンドは、sudo の前に、非ルートユーザーとして実行する必要があります。コマンドに root アクセスが必要な場合は、Ubuntu 22.04 での初期サーバー設定でユーザーを追加して sudo アクセスを付与する方法が説明されています。

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

このセクションでは、pip を使用して Jupyter Notebook をインストールします。

インストールする Python 3 プログラミング環境をアクティブにします。例では、my_env にインストールしますので、その環境のディレクトリに移動して次のようにアクティブにします:

  1. cd ~/environments
  2. . my_env/bin/activate

次に、pip が最新バージョンにアップグレードされていることを確認します:

  1. pip install --upgrade pip

これで、次のコマンドを使用して Jupyter Notebook をインストールできます:

  1. pip install jupyter

この時点で、Jupyter Notebook が現在のプログラミング環境にインストールされます。

次のオプションのステップは、SSH トンネリングを使用して Web インターフェースのサーバーインストールに接続している場合のみ適用されます。

ステップ2(オプション)— サーバーインストールに接続するためのSSHトンネリングの使用

リモートサーバーにJupyter Notebookをインストールした場合、SSHトンネリングを使用してJupyter NotebookのWebインターフェイスに接続する必要があります。Jupyter Notebookは、リモートサーバー上の特定のポート(たとえば、:8888:8889など)でブラウザインターフェイスを実行しますが、デフォルトでは広域Webに公開されていません。SSHトンネリングを使用すると、リモートサーバーのポートに安全に接続し、そのポートをローカルのウェブブラウザでアクセスできます。

これらの手順は、ローカルのターミナルウィンドウから実行するように設計されています。つまり、サーバーに接続したターミナルではありません。

SSHトンネリング

Windowsを使用している場合は、ターミナルからsshを実行するためにOpenSSHのバージョンをインストールする必要があります。PowerShellで作業する場合は、Microsoftのドキュメントに従ってPowerShellにOpenSSHを追加できます。完全なLinux環境を利用したい場合は、WSL(Windows Subsystem for Linux)をセットアップすることができ、これにはデフォルトでsshが含まれます。最後に、軽量な第三のオプションとして、Git for Windowsをインストールすることができます。これは、sshコマンドを含むネイティブのWindows bashターミナル環境を提供します。これらのいずれもがよくサポートされており、使用するかどうかは好みによるものです。

MacまたはLinuxを使用している場合は、既にターミナルでsshコマンドを利用できます。

SSHトンネリングの手順は、SSHでDropletsに接続する方法ガイドと似ていますが、sshコマンドに追加のパラメーターが追加されています。このサブセクションでは、成功裏にトンネルを作成するためにsshコマンドで必要な追加のパラメーターを概説します。

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

  1. ssh -L 8888:localhost:8888 your_server_username@your_server_ip

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

ポート8888が利用できないというメッセージを受け取った場合、65535以下の別の任意のポート番号に変更できます。ポート8888には重要な意味はありませんが、このようなデモによく使用されます。

server_usernameはサーバー上のユーザー名(例:sammy)であり、your_server_ipはサーバーのIPアドレスです。

たとえば、ユーザー名がsammyでサーバーアドレスがyour_server_ipの場合、コマンドは次のようになります:

  1. ssh -L 8888:localhost:8888 sammy@your_server_ip

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

  1. jupyter notebook

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

ステップ3 — Jupyter Notebookの実行

Jupyter Notebookがインストールされている場合、ターミナルで実行できます。これを行うには、次のコマンドを実行します:

  1. jupyter notebook

A log of the activities of the Jupyter Notebook will be printed to the terminal. When you run Jupyter Notebook, it runs on a specific port number. The first notebook you are running will usually run on port 8888. To check the specific port number Jupyter Notebook is running on, refer to the output of the command used to start it:

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). ...

ローカルコンピューターでJupyter Notebookを実行している場合(サーバーではない場合)、デフォルトのブラウザーがJupyter Notebook Webアプリを開くはずです。そうでない場合、またはウィンドウを閉じた場合は、出力に提供されたURLに移動するか、localhost:8888に移動して接続できます。

Jupyter Notebookプロセスを停止したい場合は、いつでもCtrl+Cを押し、プロンプトが表示されたらYを入力し、Enterを押して確認します。

次の出力が表示されます:

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

Jupyter Notebookはもはや実行されていません。

ステップ4 — Jupyter Notebookの使用

このセクションでは、Jupyter Notebookの基本的な使用方法について説明します。現在Jupyter Notebookが実行されていない場合は、jupyter notebookコマンドで起動してください。

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

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

これにより、ノートブックが開きます。これで、セルでPythonコードを実行したり、セルをMarkdownに変更したりできます。たとえば、最初のセルをMarkdownで受け入れるように変更するには、トップナビゲーションバーからセルセルタイプMarkdownをクリックします。Markdownを使用してメモを書いたり、LaTeXで書かれた式を$$の間に入れて含めたりすることができます。たとえば、以下のように変更したセルに次のように入力します。

# 単純な方程式

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

where $x = 2$

マークダウンをリッチテキストに変換するには、Ctrl+Enterを押し、以下の結果が表示されます。

マークダウンセルを使用してノートを作成し、コードをドキュメント化できます。この単純な方程式を実装し、結果を出力しましょう。トップセルをクリックし、次にAlt+Enterを押してその下にセルを追加します。新しいセルに次のコードを入力してください。

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

コードを実行するには、Ctrl+Enterを押します。以下の結果が表示されます。

今では、モジュールをインポートして、ノートブックを他のPython開発環境と同様に使用することができます!

Jupyterノートブックサーバーをサーバーサイドでシャットダウンするには、それを開始したターミナルウィンドウに戻り、Ctrl+Cを押します。これは端末プロセスを終了する標準的なショートカットであり、Jupyterは終了する前に保存するように促します。

結論

おめでとうございます!これで、Jupyter Notebookを使用して再現可能なPythonコードとメモを書くことができるはずです。インターフェース内からJupyter Notebookのクイックツアーを取得するには、上部ナビゲーションメニューからヘルプユーザーインターフェースツアーを選択して詳細を学習してください。

ここからは、時系列データの可視化と予測に関するシリーズを読むことに興味があるかもしれません。

Source:
https://www.digitalocean.com/community/tutorials/how-to-set-up-jupyter-notebook-for-python-3