VSCode(Visual Studio Code)とJupyterLabは、どちらもPythonによるプログラミングやデータ分析、Jupyter Notebookの編集・実行に利用できるツールです。
一見すると似ていますが、もともとの目的や得意分野には大きな違いがあります。
VSCodeは、PythonだけでなくJavaScriptやTypeScript、Java、C/C++、Goなど、さまざまなプログラミング言語を扱える汎用的なコードエディタです。
一方、JupyterLabはJupyter Notebookを中心として、データ分析や科学計算、機械学習などを対話的に進めることを目的とした環境です。
そのため、一般的なソフトウェア開発まで幅広く行いたい場合はVSCodeが向いており、Notebookを使って分析や実験を繰り返したい場合はJupyterLabが使いやすい傾向があります。
ただし、VSCodeでもJupyter Notebookを本格的に扱うことができ、JupyterLabでもターミナルやテキストエディタ、デバッガなどを利用できます。
完全に別用途のソフトウェアというよりも、それぞれ得意分野が異なる開発・分析環境と考えると分かりやすいでしょう。
VSCodeとJupyterLabの主な違い
VSCodeとJupyterLabの違いを整理すると、次のようになります。
| 比較項目 | VSCode | JupyterLab |
|---|---|---|
| 主な用途 | ソフトウェア開発全般 | 対話的なデータ分析・科学計算 |
| Python | 対応 | 対応 |
.ipynb | Jupyter拡張機能で対応 | 中心的な機能 |
.pyファイル編集 | 非常に得意 | 対応可能 |
| Python以外 | 多数の言語に対応 | Kernelを通じて複数言語に対応 |
| デバッグ | 非常に強力 | 対応Kernelなら利用可能 |
| Git | 標準機能として充実 | 拡張機能などで利用可能 |
| ターミナル | 統合ターミナルを搭載 | ターミナルを搭載 |
| データ分析 | 非常に便利 | 特に得意 |
| 大規模開発 | 得意 | Notebook中心の用途に向く |
| リモート環境 | 対応 | 対応 |
| Jupyter Kernel | 利用可能 | 利用する |
どちらが優れているというよりも、作業内容に応じて選択することが重要です。
VSCodeとは
幅広いプログラミングに対応したコードエディタ
VSCodeはMicrosoftが提供しているコードエディタです。
拡張機能を追加することで、多数のプログラミング言語やフレームワークに対応できます。
Python開発の場合でも、単純にコードを書くことだけでなく、次のような作業を一つの環境で行えます。
- Pythonコードの編集
- デバッグ
- テスト
- Gitによるバージョン管理
- ターミナル操作
- Jupyter Notebookの実行
- DockerやSSHを利用したリモート開発
そのため、データ分析だけでなく、WebアプリやAPI、バッチ処理なども含めて一つのプロジェクトとして管理したい場合に適しています。
Jupyter Notebookも利用できる
VSCodeにPython拡張機能やJupyter拡張機能を導入すると、.ipynb形式のJupyter Notebookを直接開いて編集できます。
Notebookでは、セル単位でPythonコードを実行できます。
例えば、次のような処理をVSCode上のNotebookから実行できます。
import pandas as pd
df = pd.read_csv("data/sample.csv")
df.head()
コードセルだけでなくMarkdownセルも扱えるため、分析内容の説明やメモを残しながら作業できます。
PythonファイルとNotebookを組み合わせやすい
VSCodeの大きなメリットは、Notebookと通常のPythonファイルを同じプロジェクト内で扱いやすいことです。
例えば、次のようなプロジェクト構成にできます。
project/
├─ notebooks/
│ └─ analysis.ipynb
├─ src/
│ ├─ main.py
│ └─ utils.py
├─ tests/
│ └─ test_utils.py
├─ data/
│ └─ sample.csv
└─ README.md
Notebookで試した処理を、後からsrcディレクトリのPythonファイルへ移すといった作業も行いやすくなります。
例えば、データ読み込み処理を次のように関数化します。
# src/data_loader.py
import pandas as pd
def load_data(path):
return pd.read_csv(path)
Notebook側からは次のように利用できます。
from src.data_loader import load_data
df = load_data("data/sample.csv")
分析用のコードが大きくなってきた場合でも、処理をPythonモジュールへ分割しやすい点がVSCodeの強みです。
JupyterLabとは
Notebookを中心とした対話型環境
JupyterLabは、Jupyter Notebookを中心として設計されたWebベースの開発・分析環境です。
Notebookだけでなく、テキストエディタやファイルブラウザ、ターミナルなども同じ画面上で利用できます。
例えば、次のような作業を一つのブラウザ画面で行えます。
Notebook
+
ファイルブラウザ
+
ターミナル
+
テキストファイル
+
データファイル
複数のファイルをタブや分割画面で表示できるため、データを確認しながらNotebookを編集するといった作業に向いています。
データ分析や試行錯誤に向いている
JupyterLabは、コードを書いてすぐに結果を確認するような作業と相性が良い環境です。
例えば、最初にデータを読み込みます。
import pandas as pd
df = pd.read_csv("sales.csv")
続いてデータを確認します。
df.head()
統計情報を確認することもできます。
df.describe()
さらに集計処理を行います。
df.groupby("category")["sales"].sum()
このように、
データを読み込む
↓
確認する
↓
加工する
↓
集計する
↓
可視化する
↓
再度コードを修正する
という流れを繰り返す探索的なデータ分析に適しています。
JupyterLabでもデバッグできる
JupyterLabにはデバッグ機能も搭載されています。
対応するKernelを使用している場合は、ブレークポイントの設定やステップ実行、変数の確認などが可能です。
そのため、「JupyterLabではデバッグできない」というわけではありません。
ただし、大規模なPythonプロジェクトのソースコードやテスト、設定ファイルなども含めて総合的にデバッグする場合は、VSCodeの方が扱いやすいことが多いでしょう。
Jupyter Kernelとは
コードを実際に実行するプロセス
VSCodeとJupyterLabの連携を理解するうえで重要なのが「Kernel」です。
Jupyter環境では、画面そのものがPythonコードを実行しているわけではありません。
実際のコード実行はKernelと呼ばれるプロセスが担当します。
JupyterLabの場合は、概念的には次のような構成になります。
JupyterLab
↓
Jupyter Server
↓
Kernel
↓
Python
Notebookに入力したコードがKernelへ送られ、KernelがPythonコードを実行して結果を返します。
VSCodeでもKernelを利用する
VSCodeでJupyter Notebookを実行する場合も、Kernelを選択してコードを実行します。
概念的には次のような構成です。
VSCode
↓
Jupyter拡張機能
↓
Kernel
↓
Python環境
VSCodeではNotebookを開くと、画面上部などから使用するKernelを選択できます。
そのため、VSCodeとJupyterLabで同じPython環境を利用することも可能です。
VSCodeとJupyterLabでは同じNotebookを利用できる
.ipynbファイルを共有できる
Jupyter Notebookでは、一般的に.ipynbというファイル形式が使用されます。
例えば次のようなファイルです。
analysis.ipynb
JupyterLabで作成した.ipynbファイルは、VSCodeでも開くことができます。
逆に、VSCodeで作成・編集したNotebookをJupyterLabで開くことも可能です。
つまり、次のような運用ができます。
JupyterLab
↓
analysis.ipynbを作成
↓
保存
↓
VSCodeで開く
反対に、
VSCode
↓
analysis.ipynbを編集
↓
保存
↓
JupyterLabで開く
という使い方も可能です。
基本的には特別なファイル変換は必要ありません。
VSCodeとJupyterLabを同じPython環境で使う方法
仮想環境を作成する
VSCodeとJupyterLabを併用する場合は、同じPython仮想環境を利用すると管理しやすくなります。
例えばvenvを利用する場合は、プロジェクトディレクトリで次のコマンドを実行します。
Windowsでは次のように実行できます。
python -m venv .venv
macOSやLinuxでは、環境によって次のように実行します。
python3 -m venv .venv
作成すると、次のような構成になります。
project/
├─ .venv/
├─ notebooks/
├─ src/
└─ data/
仮想環境を有効化する
WindowsのPowerShellでは次のように実行します。
.venv\Scripts\Activate.ps1
Windowsのコマンドプロンプトでは次のように実行します。
.venv\Scripts\activate
macOSやLinuxでは次のように実行します。
source .venv/bin/activate
必要なパッケージをインストールする
JupyterLabそのものを仮想環境から起動する場合は、次のようにインストールします。
python -m pip install jupyterlab ipykernel
データ分析用ライブラリも必要であれば追加します。
python -m pip install pandas numpy matplotlib
まとめてインストールすることも可能です。
python -m pip install jupyterlab ipykernel pandas numpy matplotlib
なお、VSCode上でNotebookを実行するだけであれば、必ずしもJupyterLab本体を同じ環境にインストールする必要はありません。
VSCodeからPython環境をKernelとして利用する場合は、基本的にipykernelが必要になります。
JupyterLabを起動する方法
jupyter labコマンドを実行する
JupyterLabをインストールした仮想環境を有効にして、次のコマンドを実行します。
jupyter lab
通常はWebブラウザが開き、JupyterLabの画面が表示されます。
例えば次のようなプロジェクトがあるとします。
project/
├─ .venv/
├─ notebook.ipynb
└─ data.csv
プロジェクトディレクトリへ移動してから、
jupyter lab
を実行すると、そのプロジェクトを基準として作業しやすくなります。
VSCodeで同じPython環境を選択する方法
NotebookからKernelを選択する
VSCodeでは、Python拡張機能とJupyter拡張機能をインストールします。
その後、.ipynbファイルを開きます。
Notebook画面にある「Select Kernel」などの項目から使用するPython環境を選択します。
例えば、
Select Kernel
↓
Python Environments
↓
.venv
という流れで、先ほど作成した.venvを選択します。
これにより、
JupyterLab
↓
.venv
VSCode
↓
.venv
というように、両方から同じPython環境を利用できます。
同じPython環境を利用できているか確認する方法
sys.executableを確認する
VSCodeとJupyterLabで同じ環境を利用できているか確認するには、Notebook上で次のコードを実行します。
import sys
print(sys.executable)
Windowsでは、例えば次のようなパスが表示されます。
C:\project\.venv\Scripts\python.exe
macOSやLinuxでは、例えば次のようになります。
/project/.venv/bin/python
VSCodeとJupyterLabの両方で同じPython実行ファイルが表示されれば、基本的には同じPython環境を利用していると判断できます。
ライブラリのバージョンも確認する
さらに確認したい場合は、ライブラリのバージョンも調べます。
import sys
import pandas as pd
print(sys.executable)
print(pd.__version__)
Python実行ファイルと主要パッケージのバージョンが一致しているか確認すると、環境の違いによるトラブルを発見しやすくなります。
ipykernelでKernelを登録する方法
Kernelを明示的に登録できる
必要に応じて、Python仮想環境をJupyter Kernelとして明示的に登録することもできます。
例えば次のコマンドを実行します。
python -m ipykernel install --user --name myproject --display-name "Python (myproject)"
登録すると、Kernelの選択画面に次のような名前を表示できます。
Python (myproject)
複数のPython環境を利用している場合に便利です。
例えば、
Python (project-a)
Python (project-b)
Python (machine-learning)
のように分けることができます。
ただし、このKernel登録は常に必須というわけではありません。
VSCodeではPython環境そのものを検出して、Notebook用Kernelとして利用できる場合があります。
そのため、ipykernel installは「Kernelを明示的な名前で登録したい場合に利用する方法」と理解しておくとよいでしょう。
VSCodeからJupyter Serverへ接続する方法
リモート環境のKernelを利用できる
VSCodeでは、ローカル環境だけでなく、既存のJupyter Serverへ接続してNotebookを実行することもできます。
例えば次のような構成です。
ローカルPC
VSCode
↓
ネットワーク
↓
Linuxサーバー
Jupyter Server
↓
GPU
この構成では、Notebookの編集は手元のVSCodeで行い、実際の計算は高性能なサーバー側で実行できます。
GPUを搭載したサーバーやクラウド環境を利用した機械学習などで便利です。
Existing Jupyter Serverを選択する
VSCodeでは、NotebookのKernel選択画面から既存Jupyter Serverを指定できます。
概ね次のような流れです。
Select Kernel
↓
Select Another Kernel
↓
Existing Jupyter Server
その後、接続するJupyter ServerのURLを入力します。
例えば次のような形式です。
https://example.com/jupyter/?token=...
実際のURLや認証方法は、Jupyter Server側の設定によって異なります。
リモートJupyter Server利用時の注意点
インターネットへ直接公開しない
Jupyter Serverをリモート利用する場合は、セキュリティに注意が必要です。
Jupyter Serverをそのままインターネットへ公開すると、不正アクセスのリスクが高くなります。
そのため、実務では次のような対策を検討します。
SSHトンネル
VPN
HTTPS
認証
ファイアウォール
リバースプロキシ
特に、認証なしでJupyter Serverを外部公開することは避けるべきです。
また、CORSを無制限に許可するような設定も、必要性を理解せずに使用しない方が安全です。
VSCodeとJupyterLabを併用するときの注意点
同じNotebookを同時編集しない
VSCodeとJupyterLabで同じ.ipynbファイルを開くことはできます。
ただし、両方から同時に編集・保存すると、片方の変更が上書きされる可能性があります。
例えば、
VSCode
↓
analysis.ipynb
↑
JupyterLab
という状態で両方から変更を加えると、競合が発生する可能性があります。
そのため、基本的にはどちらか一方を編集の主体にすることをおすすめします。
例えば、
JupyterLabで編集
↓
保存
↓
VSCodeで開く
という運用にすると安全です。
NotebookとKernelの状態は別物
Notebookを利用するときに重要なのが、.ipynbファイルとKernelのメモリ状態は別という点です。
例えば次のコードを実行したとします。
x = 100
この場合、x = 100という変数は現在動作しているKernelのメモリ上に保存されています。
Notebookファイルを保存しても、実行中のPythonプロセスのメモリ状態そのものが完全に保存されるわけではありません。
そのため、Notebookを別の環境で開いた場合は、コードを再実行する必要があります。
Notebookを作成するときは、
Restart Kernel
↓
Run All
を実行しても、最初から最後まで正常に動く状態にしておくことが重要です。
VSCodeが向いているケース
Notebook以外の開発も行う場合
VSCodeは、Notebookだけでなく通常のソフトウェア開発も行いたい場合に適しています。
例えば次のような用途です。
- Pythonアプリケーション開発
- Webアプリ開発
- API開発
- テスト
- Git管理
- Docker開発
- データ分析
- 機械学習
- リモート開発
特に、
notebooks/
src/
tests/
のようにNotebookと本番コードを分離したプロジェクトでは、VSCodeを利用しやすいでしょう。
例えば、
Notebookで実験
↓
Pythonファイルへ整理
↓
テスト
↓
アプリやAPIへ組み込む
という流れにも適しています。
JupyterLabが向いているケース
データ分析や実験を中心に行う場合
JupyterLabは、Notebookを中心として分析や実験を繰り返す場合に向いています。
例えば次のような用途です。
- データ分析
- 統計解析
- 機械学習
- 科学計算
- データ可視化
- 研究
- 教育
- プロトタイピング
特に、
コードを書く
↓
実行する
↓
結果を見る
↓
グラフを確認する
↓
コードを修正する
という作業を繰り返す場合に便利です。
ブラウザベースで利用できることもあり、サーバー上にJupyterLabを構築して複数の端末から利用する用途にも適しています。
VSCodeとJupyterLabはどちらを選ぶべきか
Notebook中心ならJupyterLab
データ分析や機械学習の実験など、Notebookが作業の中心であればJupyterLabは非常に便利です。
例えば、
データ読み込み
↓
分析
↓
可視化
↓
仮説検証
という作業が中心なら、JupyterLabだけでも十分な場合があります。
ソフトウェア開発まで行うならVSCode
Notebookだけでなく、
Pythonファイル
Git
テスト
デバッグ
Docker
Webアプリ
API
などをまとめて扱うのであれば、VSCodeの方が向いているケースが多くなります。
VSCodeはNotebookも扱えるため、分析から実際のアプリケーション開発まで一つの環境で完結させることも可能です。
VSCodeとJupyterLabを併用する方法もおすすめ
役割を分けて利用する
VSCodeとJupyterLabは、どちらか一方だけを選ばなければならないわけではありません。
例えば、次のように使い分けられます。
JupyterLab
↓
データ探索
↓
分析
↓
Notebookで実験
↓
VSCode
↓
コード整理
↓
Pythonモジュール化
↓
テスト
↓
Git管理
↓
本番コード化
さらに、
同じプロジェクト
同じ.venv
同じ.ipynb
同じデータ
を利用するようにすれば、環境差によるトラブルを減らせます。
実務ではプロジェクト構成を整理する
例えば次のような構成にしておくと管理しやすくなります。
project/
├─ .venv/
├─ data/
├─ notebooks/
│ └─ analysis.ipynb
├─ src/
│ └─ analysis.py
├─ tests/
├─ requirements.txt
└─ README.md
役割としては、
notebooks/
→ 調査・分析・実験
src/
→ 再利用するPythonコード
tests/
→ テストコード
のように分離できます。
Notebookで試行錯誤した処理を、安定した段階でsrcへ移すという運用もおすすめです。
VSCodeとJupyterLabの違いを理解して使い分けよう
VSCodeとJupyterLabは、どちらもPythonやJupyter Notebookを扱えますが、得意とする用途が異なります。
JupyterLabは、Notebookを中心にデータ分析や科学計算、機械学習などを対話的に進めることが得意です。
一方、VSCodeはNotebookだけでなく、通常のPythonファイル、Git、テスト、デバッグ、Dockerなどを含めたソフトウェア開発全般に向いています。
また、両者は同じ.ipynbファイルや同じPython仮想環境を利用できるため、併用することも可能です。
Notebookを中心に分析する場合はJupyterLab、分析結果をPythonモジュールやWebアプリ、APIなどへ発展させたい場合はVSCodeを中心に使うと分かりやすいでしょう。
実務では、JupyterLabでデータ探索や分析を行い、VSCodeでコードを整理してテストやGit管理、本番開発を行うといった使い分けも有効です。
以上、VSCodeとJupyterLabの違いや連携方法についてでした。
最後までお読みいただき、ありがとうございました。










