Installing and setting up Jupyter Notebook¶
Checking your Python install¶
Before we start, let's make sure your shared Python environment is turned on. Open up a new command line and look for (data) at the beginning of it.
Then run these two commands:
Does which python mention .venvs and data? Does python --version say Python 3.14.something?
If not, you'll want to go back to the Python installation guide.
Install Jupyter¶
With (data) active, use the same uv we used to set up Python:
This installs JupyterLab (the interface in your browser), Notebook (an alternative interface), and ipykernel (the part that runs Python code). Wait for the command to finish successfully before continuing.
The command is uv pip install, with all three words. uv tool install puts Jupyter in a separate environment, and uv add is for a project with its own dependencies. For this setup, we want Jupyter and your data packages together in data.
Using the pyenv fallback?
If you followed the pyenv setup because uv wasn't working, activate the data environment from that guide and use this instead:
PyYAML failed to build?
Check python --version. For example, Python 3.15.0b1 can force PyYAML 6.0.3 to build from source because there is no matching prebuilt package, and that build can crash with SIGSEGV. Switching the environment to Python 3.14 resolved this in our setup. Follow Upgrading or downgrading your Python version, then retry the install.
If you're already on 3.14 and it still fails, keep the full error message: build failures can have other causes, too.
Confirm it worked
Run the following command to check where Jupyter lives.
which jupyter should mention .venvs and data, just like Python did. The second command should print a JupyterLab version number. If the path mentions .pyenv/shims or another environment, or you get No module named jupyterlab, stop here: check that (data) is active and repeat the install.
Giving your Python a name¶
Jupyter calls each Python it can use a kernel. Jupyter and VS Code can show you several Pythons, often with similar names. Let's give ours the name data so it's easy to pick out.
From now on, any time something asks you to "select a kernel," pick data. You may also see Python 3, but choosing data makes the choice explicit.
Starting Jupyter¶
With (data) active, go to the folder where you want to work on your notebooks, then run:
A web browser should pop open with Jupyter in it. Leave the command line open! Jupyter is running inside of it, and if you close the window Jupyter goes away.
Windows asking which app to use?
On Windows, a box might pop up asking you to Select an app to open this .html file. Pick your web browser (Microsoft Edge, or Chrome if you use it), then click Always. Don't pick Visual Studio Code!


Browser didn't open?
Sometimes Jupyter starts up just fine but the browser never pops open. This happens on Windows if your username has an accent in it, like Renée or José.
No problem! Look in the command line for a line that starts with http://localhost:8888/lab?token= and copy and paste the whole thing into your browser. (In Windows Terminal you can also hold Ctrl and click it.)
If you prefer the Notebook interface, you can use
jupyter notebookinstead.
Confirm it worked
In Jupyter, click data under Notebook to make a new notebook. In the first cell, type this and press Shift+Enter to run it:
It should print a path with .venvs and data in it. If it does, your notebook is using the same Python as your command line, and packages you install with uv pip install in that same active environment will be available to the notebook. Restart the kernel after installing or updating packages if needed.

To install a package from inside a notebook, use %pip install package-name in a cell. That targets the notebook's Python. Use uv pip install package-name in your command line with (data) active.
When you're done with Jupyter, go back to the command line and press Ctrl+C (yes, on macOS too) to shut it down.