Jupyterをuvで使用する
Jupyterノートブックは、インタラクティブなコンピューティング、データ分析、および可視化のための人気のツールです。Jupyterをuvと一緒に使用する方法はいくつかあり、プロジェクトと対話するため、またはスタンドアロンツールとして使用することができます。
プロジェクト内でJupyterを使用する
プロジェクト内で作業している場合、次のコマンドを使用してプロジェクトの仮想環境にアクセスできるJupyterサーバーを起動できます。
デフォルトでは、jupyter lab
はサーバーをhttp://localhost:8888/labで起動します。
ノートブック内では、プロジェクトの他のファイルと同様にプロジェクトのモジュールをインポートできます。たとえば、プロジェクトがrequests
に依存している場合、import requests
はプロジェクトの仮想環境からrequests
をインポートします。
プロジェクトの仮想環境への読み取り専用アクセスを探している場合は、それ以上の設定は必要ありません。ただし、ノートブック内から追加のパッケージをインストールする必要がある場合は、いくつかの追加の詳細を考慮する必要があります。
カーネルの作成
ノートブック内からパッケージをインストールする必要がある場合、プロジェクト専用のカーネルを作成することをお勧めします。カーネルを使用すると、Jupyterサーバーは1つの環境で実行され、個々のノートブックはそれぞれの独立した環境で実行されます。
uvのコンテキストでは、Jupyter自体を分離された環境にインストールしながら、プロジェクトのカーネルを作成できます。たとえば、uv run --with jupyter jupyter lab
のように。プロジェクトのカーネルを作成することで、ノートブックが正しい環境に接続され、ノートブック内からインストールされたパッケージがプロジェクトの仮想環境にインストールされることが保証されます。
カーネルを作成するには、ipykernel
を開発依存関係としてインストールする必要があります。
次に、project
のカーネルを作成できます。
その後、サーバーを起動します。
ノートブックを作成する際に、ドロップダウンからproject
カーネルを選択します。その後、!uv add pydantic
を使用してpydantic
をプロジェクトの依存関係に追加するか、!uv pip install pydantic
を使用してpydantic
をプロジェクトの仮想環境にインストールしますが、プロジェクトのpyproject.toml
やuv.lock
ファイルには変更を反映しません。どちらのコマンドも、ノートブック内でimport pydantic
を機能させます。
カーネルなしでパッケージをインストールする
カーネルを作成したくない場合でも、ノートブック内からパッケージをインストールできます。ただし、いくつかの注意点があります。
uv run --with jupyter
は分離された環境で実行されますが、ノートブック内では!uv add
および関連コマンドはカーネルなしでもプロジェクトの環境を変更します。
たとえば、ノートブック内で!uv add pydantic
を実行すると、pydantic
がプロジェクトの依存関係および仮想環境に追加され、追加の設定やサーバーの再起動なしでimport pydantic
がすぐに機能します。
ただし、Jupyterサーバーが「アクティブ」な環境であるため、!uv pip install
はパッケージをプロジェクト環境ではなく_Jupyter_環境にインストールします。そのような依存関係はJupyterサーバーの存続期間中は持続しますが、次回のjupyter
呼び出し時には消える可能性があります。
ノートブックがpipに依存している場合(例:%pip
マジックを使用)、Jupyterサーバーを起動する前にuv venv --seed
を実行してプロジェクトの仮想環境にpipを含めることができます。たとえば、次のようにします。
その後、ノートブック内での%pip install
呼び出しはプロジェクトの仮想環境にパッケージをインストールします。ただし、そのような変更はプロジェクトのpyproject.toml
やuv.lock
ファイルには反映されません。
スタンドアロンツールとしてJupyterを使用する
ノートブックにアドホックにアクセスする必要がある場合(つまり、Pythonスニペットをインタラクティブに実行するため)、uv tool run jupyter lab
を使用していつでもJupyterサーバーを起動できます。これにより、分離された環境でJupyterサーバーが実行されます。
プロジェクト環境以外でJupyterを使用する
プロジェクトに関連付けられていない仮想環境(例:pyproject.toml
やuv.lock
がない)でJupyterを実行する必要がある場合、Jupyterを直接環境に追加できます。たとえば、次のようにします。
ここから、ノートブック内でimport pydantic
が機能し、!uv pip install
や!pip install
を使用して追加のパッケージをインストールできます。
VS CodeからJupyterを使用する
VS Codeのようなエディタ内からJupyterノートブックと対話することもできます。VS Code内でuv管理のプロジェクトをJupyterノートブックに接続するには、次のようにプロジェクトのカーネルを作成することをお勧めします。
# プロジェクトを作成します。
$ uv init project
# プロジェクトディレクトリに移動します。
$ cd project
# ipykernelを開発依存関係として追加します。
$ uv add --dev ipykernel
# プロジェクトをVS Codeで開きます。
$ code .
プロジェクトディレクトリがVS Codeで開かれたら、コマンドパレットから「Create: New Jupyter Notebook」を選択して新しいJupyterノートブックを作成できます。カーネルを選択するように求められたら、「Python Environments」を選択し、先ほど作成した仮想環境(例:.venv/bin/python
)を選択します。
Note
VS Codeはプロジェクト環境にipykernel
が存在することを要求します。ipykernel
を開発依存関係として追加したくない場合は、uv pip install ipykernel
を使用してプロジェクト環境に直接インストールできます。
ノートブック内からプロジェクトの環境を操作する必要がある場合は、uv
を明示的な開発依存関係として追加する必要があるかもしれません。
その後、!uv add pydantic
を使用してpydantic
をプロジェクトの依存関係に追加するか、!uv pip install pydantic
を使用してpydantic
をプロジェクトの仮想環境にインストールしますが、プロジェクトのpyproject.toml
やuv.lock
ファイルには変更を反映しません。