通过Jupyter执行Python:调用quit()和exit()会引发NameError

通过Jupyter执行Python:调用quit()和exit()会引发NameError,python,jupyter-notebook,nameerror,Python,Jupyter Notebook,Nameerror,我正在通过Jupyter执行一个Python文件text.py。到目前为止,我还没有收到那个错误,但发生了一些变化,现在调用quit()或exit()会引发NameError。现在是什么导致了这个问题 test.py def myFunc(): print('yes') quit() myFunc() 测试.ipynb #executes test.py %run test.py 这是因为您在两个不同的python环境上运行python 要检查正在运行的环境,可以在代码顶部

我正在通过Jupyter执行一个Python文件
text.py
。到目前为止,我还没有收到那个错误,但发生了一些变化,现在调用
quit()
exit()
会引发
NameError
。现在是什么导致了这个问题

test.py

def myFunc():
    print('yes')
    quit()

myFunc()
测试.ipynb

#executes test.py
%run test.py

这是因为您在两个不同的python环境上运行python

要检查正在运行的环境,可以在代码顶部添加以下两行:

import sys
print(sys.executable)

def myFunc():
    print('yes')
    quit()

myFunc()
运行时使用:

python3 test.py 
导致这个输出

/usr/bin/python3
yes
相反,我从jupyter获得以下信息:

/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

它的作用是相同的:)

如果我直接执行文件,
print(sys.executable)
返回的结果与通过jupyter运行的结果相同:
/Applications/anaconda3/bin/python
如果您在答案中添加
sys.exit()
作为
退出()
的替代,我很乐意接受它,因为它解决了我的问题。从你的链接中得到;)
sys.exit()