That's because you are running python on two different python environment.
To check which env you are running you can add this two lines on top of your code:
import sys
print(sys.executable)
def myFunc():
print('yes')
quit()
myFunc()
running with:
python3 test.py
leads to this output
/usr/bin/python3
yes
instead from jupyter I obtain this:
/snap/jupyter/6/bin/python
yes
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
/home/marco/Documents/gibberish/test.py in <module>
6 quit()
7
----> 8 myFunc()
9
10
/home/marco/Documents/gibberish/test.py in myFunc()
4 def myFunc():
5 print('yes')
----> 6 quit()
7
8 myFunc()
NameError: name 'quit' is not defined
Basically when you are running the code from jupyter you are loading a different set of builtin libraries
Anyway quit should be used only from the interpreter
Or you can simply use
sys.exit()
Which does the same thing :)