# How to install Jupyter Lab or Notebook in 2025

> Install JupyterLab or Jupyter Notebook with pip, conda, or standalone distributions

Canonical HTML: https://www.runcell.dev/docs/faq/how-to-install-jupyter

## 1. Why Jupyter Lab over the classic Notebook?

* **Jupyter Lab is the project’s “next‑generation” UI** – tabbed work area, side‑by‑side documents, built‑in terminals, extensible plug‑in system and Notebook‑7 file‑format compatibility.
* Notebook‑7 will eventually replace the *classic* Notebook, but both open the same `.ipynb` files, so adopting Lab today is future‑proof.

***

## 2. TL;DR – 30‑second install

> Already have Python ≥ 3.9 on your PATH and just want to run a notebook?
>
> ```
> pip install --upgrade jupyterlab
> jupyter lab
> ```
>
> The PyPI wheel (latest release 4.4.5, 20 July 2025) auto‑pulls all core dependencies.

If you still need the classic UI as well:

```
pip install notebook   # installs Notebook 7 alongside Lab
```

***

## 3. Pre‑flight checklist

| Requirement          | Notes                                           |
| -------------------- | ----------------------------------------------- |
| Python 3.9 – 3.13    | Lab 4 officially supports these versions        |
| Modern browser       | Firefox, Chrome or Safari are tested.           |
| (Optional) Node ≥ 20 | Needed only when you *build* source extensions. |

***

## 4. Progressive installation paths

### 4.1 `pip` in a clean virtual‑env (recommended for most)

```bash
python -m venv .venv
# Windows: .venv\Scripts\activate
# macOS/Linux: source .venv/bin/activate
pip install jupyterlab           # or 'pip install -U jupyterlab'
jupyter lab                      # launches on http://localhost:8888/lab
```

This isolates notebook dependencies from your system Python while staying lightweight.

***

### 4.2 `uv` – ultra‑fast lock‑file manager (✨ 2024‑25 newcomer)

`uv` can create the venv **and** resolve wheels 10‑20× faster than pip:

```bash
curl -sSf https://astral.sh/uv/install | sh     # one‑liner installer
uv venv --seed                                  # create & seed .venv
uv pip install jupyterlab                       # or: uv add jupyterlab
uv run --with jupyter jupyter lab
```

The official guide explains how to generate dedicated kernels, `%uv add` packages from inside the notebook, and integrate with VS Code.

***

### 4.3 `conda` / `mamba` – batteries‑included data‑science stacks

Conda‑forge maintains Lab builds for every platform:

```bash
conda install -c conda-forge jupyterlab      # classic conda
mamba install -c conda-forge jupyterlab      # drop‑in faster solver
```

Using conda keeps compiled libs (NumPy, pandas, etc.) consistent and lets you pin GPU, CUDA or R packages in the same environment.

***

### 4.4 Container images (Docker / Podman / Kubernetes)

| Scenario           | One‑liner (quay.io images avoid Docker‑Hub rate limits)                              |
| ------------------ | ------------------------------------------------------------------------------------ |
| CPU‑only minimal   | `docker run --rm -p 8888:8888 quay.io/jupyter/minimal-notebook:python-3.12`          |
| Data‑science stack | `docker run --rm -p 8888:8888 quay.io/jupyter/datascience-notebook:python-3.12`      |
| GPU‑accelerated TF | `docker run --gpus all -p 8888:8888 quay.io/jupyter/tensorflow-notebook:cuda-latest` |

The Jupyter Docker stacks switched their *default* registry to Quay in 2024 to bypass Hub rate‑limits, and now publish official CUDA‑enabled tags for PyTorch & TensorFlow.

> **Tip:** Mount your workspace with `-v $(pwd):/home/jovyan/work` to keep notebooks outside the container.

***

### 4.5 VS Code integration

1. Install the **“Jupyter”** extension (> 93 M installs) from the marketplace.
2. Pick any Python/Conda/uv environment that already has `jupyter` on PATH; VS Code will detect it as a kernel.
3. Use **Remote SSH / Dev‑Containers / Codespaces** to point the kernel picker at a remote server. The official docs cover kernel management and switching.

***

### 4.6 Zero‑install cloud notebooks

* **Google Colab** – free GPU notebooks, now with an AI “agent” that can auto‑fix code and manage cells announced at I/O 2025.
* **Binder / Voilà / Kaggle** – launch transient JupyterLab sessions from a Git repo in one click.
* **Enterprise JupyterHub / JupyterLite** – browser‑only Lab that runs on WebAssembly; great for docs and static demos.

***

## 5. Updating or removing

```bash
# pip / uv
pip install -U jupyterlab          # or uv pip install -U jupyterlab
pip uninstall jupyterlab           # removes Lab but not your notebooks

# conda / mamba
mamba update jupyterlab
mamba remove jupyterlab
```

When Docker images are updated daily you simply `docker pull` the new tag.

***

## 6. Next steps

* Explore **Lab extensions** (variable inspector, Git, LSP, dashboards).
* Learn `%pip` / `%conda` magics for in‑notebook installs.
* Try **GPU kernels** (e.g., `pycuda`, `cupy`) inside the new CUDA stacks.
* For team workflows, pair Lab with **JupyterHub** or integrate into VS Code’s Live Share.

Feel free to bookmark this guide – the commands above should stay valid for the entire Jupyter Lab 4.x lifecycle. Happy coding!
