Reputation: 5190
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?
Upvotes: 220
Views: 764007
Reputation: 3467
I had the exact same problem and it was driving me crazy. Other answers provide a solution, but they don't explain why you and I are having this problem.
I will try to explain why this is happening and then provide some solutions.
You can go to the end to see the TL;DR.
I'll try to make a step-by-step answer so everything is explained clearly. If you think it's too basic at the beginning, go to the end of this post.
I'll first start with common things like running the python
shell from the terminal or running pip
. You'll see why you can do that from the terminal and we'll end up on why and how you can run the jupyter
notebook from the terminal as well.
Ready? Let's start!
Have you ever wondered why you can type python
in the terminal (command prompt) and suddenly start the Python interpreter?
Microsoft Windows [Version 10.0.18363.1440]
(c) 2019 Microsoft Corporation. All rights reserved.
C:\Users\YOUR-USERNAME>python
Python 3.9.1 (tags/v3.9.1:1e5d33e, Dec 7 2020, 17:08:21) [MSC v.1927 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
You probably already know (but maybe don't) that this is because Python was added to the Windows PATH
environment variable. You probably did it at installation time or afterwards.
But, what is this PATH environment variable?
It basically allows you to run any executables, that are located inside the paths specified in the variable, at the command prompt without having to give the full path to the executable.
You can check the content of that PATH
variable with:
>>> import sys
>>> for path in sys.path:
print(path)
C:\Users\YOUR-USERNAME\AppData\Local\Programs\Python\Python39\python39.zip
C:\Users\YOUR-USERNAME\AppData\Local\Programs\Python\Python39\DLLs
C:\Users\YOUR-USERNAME\AppData\Local\Programs\Python\Python39\lib
C:\Users\YOUR-USERNAME\AppData\Local\Programs\Python\Python39
C:\Users\YOUR-USERNAME\AppData\Local\Programs\Python\Python39\lib\site-packages
... (some other paths were taken out for clarity)
You can see this folder: C:\Users\YOUR-USERNAME\AppData\Local\Programs\Python\Python39
. This is the place where Python version 3.9 is installed. Let's check its content:
<DIR> DLLs
<DIR> Doc
<DIR> etc
<DIR> include
<DIR> Lib
<DIR> libs
<DIR> Scripts
<DIR> share
<DIR> tcl
<DIR> Tools
LICENSE.txt
NEWS.txt
python.exe
python3.dll
python39.dll
pythonw.exe
vcruntime140.dll
vcruntime140_1.dll
Voilà! We have the python.exe
file (an executable). We have a Python executable file in the PATH
, that's why you can start the Python interpreter from the terminal with just typing python
. If this wasn't the case you would have to type the full path to the executable file in the terminal:
C:\Users\YOUR-USERNAME> C:\Users\YOUR-USERNAME\AppData\Local\Programs\Python\Python39\python)
Instead of just:
C:\Users\YOUR-USERNAME> python
And what about when you use pip
?
It's the same principle. You can run pip
from the terminal because there is a pip
executable file in the PATH
variable.
If you go to C:\Users\YOUR-USERNAME\AppData\Local\Programs\Python\Python39\Scripts\
(which is in the PATH
showed above) you'll see many executables files. One of them is pip
. Actually I have three versions: pip
, pip3.9
and pip3
.
The Scripts
folder allows exectuable files to be run from the terminal. Like pip
or other libraries that you intend to run directly from the terminal. The Scripts
folder:
...is not intended for you, it's for scripts that are installed as components of modules that you install. For example, pip is a module, but it also has a wrapper script by the same name, pip, which will be installed in that directory.
If you put something there and it is properly in your PATH, then it should be executable
That wrapper script would be the pip
executable file. When this executable file is run, it locates the pip
folder in the Python installation folder and runs pip
.
But you could also run pip
directly from the installation folder (C:\Users\YOUR-USERNAME\AppData\Local\Programs\Python\Python39\Lib\site-packages
), without needing the executable pip
file.
But, how can you do it?
I'm glad you ask. There is a Python way to run modules as the main module (without the need to import it).
python -m pip
When you run a module directly its name becomes __main__
. What -m
does is:
Search
sys.path
for the named module and execute its contents as the__main__
module.
What is __main__
?
'__main__'
is the name of the scope in which top-level code executes.A module’s
__name__
is set equal to'__main__'
when read from standard input, a script, or from an interactive prompt. ...
I guess that the pip
executable does something similar, or at least, has the same effect: to start pip
.
Think of the Jupyter Notebook
as the same as pip
. If you want to run jupyter
in the terminal, you need an executable that it's on the PATH
.
We have already seen that the executables of modules like pip
or jupyter
are located here C:\Users\YOUR-USERNAME\AppData\Local\Programs\Python\Python39\Scripts\
.
If I check the content of the folder I see this:
easy_install-3.9.exe
easy_install.exe
f2py.exe
jsonschema.exe
jupyter-bundlerextension.exe
jupyter-console.exe
jupyter-nbconvert.exe
jupyter-nbextension.exe
jupyter-notebook.exe
jupyter-qtconsole.exe
jupyter-serverextension.exe
jupyter-trust.exe
pip.exe
pip3.9.exe
pip3.exe
I see the already mentioned pip
, pip3.9
and pip3
. But I don't see jupyter
(the word "jupyter" alone).
If I type jupyter
in the terminal I get the error that started all:
'jupyter' is not recognized as an internal or external command, operable program or batch file.
Finally we've reached an answer to your question!!!
'jupyter' is not recognized as a command because there is no executable file in the Scripts
folder called jupyter
.
So, let's try a different executable. What about jupyter-notebook
?
BINGO! The notebook is running!
Serving notebooks from local directory:
C:\Users\YOUR-USERNAME\AppData\Local\Programs\Python\Python39\Scripts
Jupyter Notebook 6.3.0 is running at:
http://localhost:8888/?token=... (edited)
or http://127.0.0.1:8888/?token=... (edited)
Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
I don't know why I don't have a jupyter
executable called 'jupyter'. The official documentation says to use jupyter notebook
on the terminal, but it seems that in some cases it doesn't work. And I think it has to do with what I mentioned above: there is no jupyter
exectuable in the Scripts
folder.
If you remember, I told you that you can run pip
as the main module using python -m pip
.
It happens that you can do the same with jupyter
.We just need to know how to call it. As in with pip
, we have to check the folder where 3rd party libraries are installed: C:\Users\YOUR-USERNAME\AppData\Local\Programs\Python\Python39\Lib\site-packages
.
You'll see jupyter_console
, but this just creates an interactive notebook in the terminal, not exactly what you were looking for. You're also going to find folders ending with .dist.info
, like jupyter_console-6.4.0.dist-info
. This is just metadata of the Wheel Binary Package builder. You'll also see a folder like jupyterlab_pygments
, but that's for JupyterLab
. We want to use the classic Jupyter notebook.
What we want is to run notebook
. How do we know this?
You'll see in the folder site-packages
the folder (package) notebook
. Inside there is a file called __main__.py
:
#__main__.py
if __name__ == '__main__':
from notebook import notebookapp as app
app.launch_new_instance()
It's calling notebookapp.py
which is a "A tornado based Jupyter notebook server." Yes, this is what we need.
We can see that launch_new_instance
in the notebookapp
calls launch_instance()
, which "launches an instance of a Jupyter Application".
Perfect! We are in the correct folder. To run the jupyter notebook from the Python interactive shell we have to run the notebook package with:
python -m notebook
tl;dr:
I have explained and showed why this error is happening.
Now let's summarize the solutions:
To know the name of the jupyter
executable (in the Scripts
folder), so you can run directly from the terminal (Command Prompt) as:
jupyter notebook
or as:
jupyter-notebook
Or whatever name you have.
Run the notebook as the main module from Python:
python -m notebook
I hope this helps you as much as it helped me. I'm open to your comments and suggestions.
Upvotes: 69
Reputation: 11
For those who NEED jupyter notebook
to work, specially for R kernel in Jupyter notebook.
if jupyter
command is not recognized is because it is not in path.
In my case, pip install jupyter
put jupyter.exe in
C:\Users\user\AppData\ Roaming\Python\Python312\Scripts
instead of
C:\Users\user\AppData\ Local\Programs\Python\Python312\Scripts
and paste them into Local
Or even easier, add Roaming to your PATH
.
Upvotes: 0
Reputation: 1
First check where your python is installed by heading over to
C:\Users\**username**\AppData\Local\Programs\Python\Python39\Scripts
this is the path usually you will find python installed. After this type in
cd.. to get one step out of the Scripts folder
After this install jupyter in here using:
$ pip install jupyter
The installation was fine and when I tried to open the jupyter notebook, it gave me the following error.
'jupiter is not recognized as an internal or external command, operable program or batch file.
I checked a lot of resources but still, I faced the same problem. After doing a lot of stuff from the internet, I myself figured out that maybe due to some updates(for some users) it won't open by typing the command
jupyter notebook
Instead, you have to type
jupyter-notebook
The only thing I was missing was this Hyphen-minus.
Upvotes: 0
Reputation: 81
Adding jupyter notebook to System Environment Variable will probably fix this issue
Upvotes: 0
Reputation: 411
I had the same issue and installed jupyter using pip on windows 10. I was actually trying to install an R kernel for jupyter and it did not work. Eventually the solution from Hao Liang at jupyter-client has to be installed but “jupyter kernelspec --version” exited with code 127 worked.
However if you want to be able to run "jupyter notebook" please try the following.
Find the location of the jupyter file, by looking at the location returned after typing pip show jupyter
in ms-dos prompt. For me it was c:\program files (x86)\microsoft visual studio\shared\python39_64\lib\site-packages
in that folder there is a file jupyter.py that is the root command that call the different jupyter modules.
Add the location of the file to the PATH (using system environment variable)
If not done already add the folder of the python exectuable to the PATH too (for me it was c:\program files (x86)\microsoft visual studio\shared\python39_64).
Now add python file extensions to the PATHEXT environment variable (adding ".PY;" to PATHEXT)
In a command prompt run as administrator, run the following two commands:
assoc .py=Python.File
ftype Python.File=c:\program files (x86)\microsoft visual studio\shared\python39_64\\python.exe "%1" %*
Open a new command and type "jupyter notebook", it should now work.
Upvotes: 0
Reputation: 23
you can should type in your windows command-line python -m notebook
if you can another response than you can re-install the jupyter pip install jupyter
,
After complete the successful installation type again in your command-line python -m notebook
...
Upvotes: 1
Reputation: 9
I know there are so many answers here, but this might help others.
Set the environment variables for your username.
check whether the notebook is installed, jupyter --version This will list all the Jupyter core packages
if the notebook says "not installed", execute the below command pip install notebook
Upvotes: -1
Reputation: 529
If you are doing it through pip installation,
C:\Users\<username>\AppData\Roaming\Python\<yourpythonfolder>\Scripts
Adding this to your path is missing for 'jupyter notebook' command to run
Upvotes: 1
Reputation: 99
You can add the following to your path
C:\[Python Installation path]\Scripts
e.g. C:\Python27\Scripts
It will start working for jupyter and every other pip install you will do here on.
Upvotes: 7
Reputation: 91
I just found that error when I first intalled and run the jupyter notebook. Then I found the executable (.exe) file from
C:\Users\<user-name>\AppData\Local\Programs\Python\Python39\Scripts
.
The actual file name was "jupyter-notebook"
.
The installation guide says it as "jupyter notebook"
to run the server. You have to run the command "jupyter-notebook"
in the command line and it will be run. Thanks!
Upvotes: 1
Reputation: 51
Had the same issue. Finally searched where jupyter.exe directory was located on my computer. For some reason it was under C:\VTRoot\HarddiskVolume4\Users[user]\AppData\Local\Programs\Python
Whereas the Python is C:\Users[user]\AppData\Local\Programs\Python
So I copied full Python39 folder from VTRoot to main Python39 python folder in AppData. And the issue is solved.
Upvotes: 0
Reputation: 11
Add system variable path, this path is where jupyter and other scripts are located
PATH -->
`C:\Users\<userName>\AppData\Roaming\Python\Python39\Scripts`
Like in my laptop PATH is:
"C:\Users\developer\AppData\Roaming\Python\Python39\Scripts"
After that, You will be able to run jupyter from any folder & any directory by running the below command
jupyter notebook
Upvotes: 0
Reputation: 11
First run this command
pip install jupyter
then add system variable path , this path is where jupyter and other scripts are located
PATH = C:\Users<userName>\AppData\Roaming\Python\Python38\Scripts
e.g PATH=C:\Users\HP\AppData\Roaming\Python\Python38\Scripts
After that we can run jupyter from any folder/directory
jupyter notebook
Upvotes: 1
Reputation: 11
To install I used "pip install notebook" in windows command line
To run python -m notebook did not work for me, but python3 -m notebook worked
Upvotes: 1
Reputation: 121
first you should make sure that you are put your python path in your system variables .. Then try run this
python -m pip install jupyter --user
and then run this
py -m notebook or jupyter notebook
Upvotes: 3
Reputation: 5190
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 :)
Upvotes: 82
Reputation: 1
I just installed JupyterLab on top of my Python 3.8/pip enabled Win10 machine, so I ran into these startup problem with windows. If everything is ok (check that you have PATH for Python, eg. C:\Users[Username]\AppData\Local\Programs\Python\Python38-32\Scripts) you simply run:
jupyter-lab.exe
and that's it.
Cheers
Upvotes: 0
Reputation: 3464
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
Upvotes: 344
Reputation: 326
you can create a batch file and search for Jupiter in your windows search and ooen its properties and you will get this string. D:\anaconda3\python.exe D:\anaconda3\cwp.py D:\anaconda3 D:\anaconda3\python.exe D:\anaconda3\Scripts\jupyter-notebook-script.py "%USERPROFILE%/" after getting this you can create a jupitor.bat file with this content it that and you can save that file in a script folder in d or any drive and add the path of your script file in your environmental path
and then you can easly call this by typing jupitor in cmd.
Upvotes: 1
Reputation: 1
I was facing the same issue in windows7, as i just recoverd my computer with the help of recovery point and after that notebook just stopped working. I tried to change the path setting but nothing was working so I just simply uninstalled the python with the application from which it was installed and after that I installed it again. After that I installed jupyter notebook again and then it worked fine. Thanks
Upvotes: 0
Reputation: 91
Check whether you have given python PATH in environmental variables properly.
If not, then set python path. Then use:
$ python -m notebook
Upvotes: 4
Reputation: 129
I have two python version installed: 1. Python 3.8.2: This was installed independently 2. Python 3.7.6: This was installed along with Anaconda 3
Multiple versions caused conflict even after setting the path variables correctly.
I have uninstalled the Python 3.8.2 and after restart, the command
jupyter notebook
Worked perfectly :)
Upvotes: 1
Reputation: 11
100% working solution:
Follow these steps:
Open the folder where you downloaded "python-3.8.2-amd64.exe" setup or any other version of python package
Double click on "python-3.8.2-amd64.exe'
Click "Modify"
You will see "Optional features"
Click "next"
Select "Add python to environment variables"
Click "install"
Then u can run jupyter in any desired folder u desire
E.g open "cmd" command prompt
Type :
E:
E:\>jupyter notebook
It will get started without showing
'Jupyter' is not recognized
Thanks
Upvotes: 1
Reputation: 10296
In Python 3.7.6 for Windows 10. After installation, I use these commands.
1. pip install notebook
2. python -m notebook
OR
C:\Users\Hamza\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\Scripts .
For my pc python-scripts are located in the above path. You can add this path in environment variables. Then run command.
1. jupyter notebook
Upvotes: 6
Reputation: 3
If you have installed jupyter with "python -m pip install jupyter" command instead of "$ pip install jupyter" command then follow these steps:
Upvotes: 0
Reputation: 474
## windows CMD
python -m notebook
jupyter notebook
Upvotes: 2
Reputation: 7407
Problem for me was that I was running the jupyter
command from the wrong directory.
Once I navigated to the path containing the script, everything worked.
Path-
C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\Scripts
Upvotes: 1
Reputation: 1
In windows 10: If you used anaconda3 for Jupyter notebook installation and forgot to check the box to add the environment variables to the system during installation, you need to add the following environment variables to the "Path" variable manually: (search windows settings for Edit environment variables")
Environment variables for Anaconda3
Upvotes: 0
Reputation: 21
I added
c:\users\[user]\appdata\roaming\python\python37\site-packages
to the path and it worked.
Upvotes: 2
Reputation: 9
Here is how I resolved stated issue, hope it helps:
install python 3.7 using official website for python, while installing include installing PATH by checking it's box
after that open cmd (be sure to open it after step 1) and write: pip install jupyter ENTER
now you should be able to open jupyter notebook by using command: jupyter notebook
Seems simple, but it may as well help.
Upvotes: 0