Running Jupyter via command line on Windows

I have installed Jupyter on Windows 10, Python 3.x via

$ pip install jupyter

The installation works fine, even though I did restart the terminal.

But trying to run

$ jupyter notebook

gives the following error

'jupyter' is not recognized as an internal or external command, operable program or batch file.

How and where do I find the executable for Jupyter?


Solution 1:

If you are absolutely sure that your Python library path is in your system variables (and you can find that path when you pip install Jupyter, you just have to read a bit) and you still experience "command not found or recognized" errors in Windows, you can try:

python -m notebook

For my Windows at least (Windows 10 Pro), having the python -m is the only way I can run my Python packages from command line without running into some sort of error

Fatal error in launcher: Unable to create process using ' "

or

Errno 'THIS_PROGRAM' not found

Solution 2:

Please try either of these commands first;

$ py -m notebook
$ python -m notebook

for jupyterlab users

py -m jupyterlab

Otherwise

$ python -m pip install jupyter --user
$ jupyter notebook

If this does not work.

pip does not add jupyter directly to path for local.

The output from

$ which python
/c/Users/<username>/AppData/Local/Programs/Python/Python35-32/python

After some digging I found a executable for jupyter in the folder:

C:\Users\<username>\AppData\Roaming\Python\Python35\Scripts\jupyter.exe

Difference between local and roaming folder

So if you want to be able to execute a program via command line, you need to add it into the %PATH variable. Here is a powershell script to do it. BE SURE TO ADD THE ";" before adding the new path.

$ [Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:\Users\<username>\AppData\Roaming\Python\Python35\Scripts", [EnvironmentVariableTarget]::User)

Update:

if you are using python3, switch out python with python3 but I encourage you to use pyenv instead :)

Solution 3:

I had the same problem, but

py -m notebook

worked for me.