2025, Oct 19 14:00

JupyterLab not recognized on Windows 11? Fix PATH to Python310 Scripts and restart PowerShell

JupyterLab stopped working in Windows 11 PowerShell? Learn why PATH misses Python310 Scripts and how to add it. Quick steps to fix 'jupyter lab' not recognized.

When JupyterLab vanishes from PATH on Windows 11

You run JupyterLab on Windows 11 via PowerShell for months, then one day the shell says the command does not exist. Reinstalling jupyterlab with pip changes nothing. Python reports that Jupyter packages are present, yet jupyter lab fails unless you call the full .exe path. This guide walks through the exact reason and the minimal fix, without detours.

Reproducing the issue

Reinstalling did not help:

pip uninstall jupyterlab
pip install jupyterlab

PowerShell cannot resolve the command:

jupyter lab

jupyter : The term 'jupyter' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is
correct and try again.
At line:1 char:1
+ jupyter lab
+ ~~~~~~~
    + CategoryInfo          : ObjectNotFound: (jupyter:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

Python is located here:

C:\Program Files\Python310\python.exe

Installed Jupyter entry points (.exe shims) are here:

C:\Users\DALEX\AppData\Roaming\Python\Python310\Scripts

And Python clearly “sees” the Jupyter stack:

python -m jupyter --version

Selected Jupyter core packages...
IPython          : 8.37.0
ipykernel        : 6.29.5
ipywidgets       : not installed
jupyter_client   : 8.6.3
jupyter_core     : 5.8.1
jupyter_server   : 2.16.0
jupyterlab       : 4.4.7
nbclient         : 0.10.2
nbconvert        : 7.16.6
nbformat         : 5.10.4
notebook         : 7.4.5
qtconsole        : not installed
traitlets        : 5.14.3

Yet calling Jupyter only works with the full path:

C:\Users\DALEX\AppData\Roaming\Python\Python310\Scripts\jupyter-lab.exe

What actually breaks

The problem is not with pip or Jupyter itself. PowerShell relies on the PATH environment variable to locate executables like jupyter.exe and jupyter-lab.exe. In this case, PATH contains a similar directory, but not the exact one where Jupyter was installed. The entry that is present is:

C:\Users\DALEX\AppData\Roaming\Python\Scripts

but the actual location of Jupyter’s command shims is:

C:\Users\DALEX\AppData\Roaming\Python\Python310\Scripts

Since Windows does not substitute or guess subfolders, the shell never finds jupyter from PATH, which explains why only the full path works and why python -m jupyter --version still reports the packages: Python can import the modules, but PowerShell cannot find the command-line entry point.

Fix

Add the exact directory that contains the Jupyter executables to PATH. Use copy-paste to avoid typos and avoid similar-looking paths:

C:\Users\DALEX\AppData\Roaming\Python\Python310\Scripts

After updating PATH, restart PowerShell so the session picks up the new environment variables. Then run the command again:

jupyter lab

If you prefer, you can still launch via the full path, but correcting PATH removes the need for that workaround.

Why this matters

Command resolution on Windows is strict: only directories explicitly listed in PATH are searched. A nearly identical path without the Python310 segment will not match and will silently fail to locate executables. Even after fixing PATH, an open PowerShell session keeps the old environment in memory, so a restart is required before the shell can resolve new locations.

In the reported case, correcting the PATH entry addressed the missing command. A later, unrelated error message about a kernel not found belongs to a different troubleshooting track and is separate from the PATH misconfiguration.

Takeaways

When a familiar CLI like jupyter lab stops resolving on Windows 11, first compare the exact install directory of the tool’s executables with what you have in PATH. Use precise, copy-pasted paths rather than manually typed ones, ensure the correct PythonXY subfolder is present, and restart PowerShell after changes. This minimal check prevents hours lost to reinstalls that do not touch the root cause.

The article is based on a question from StackOverflow by Alex and an answer by Michał Turczyn.