通过Jupyter执行Python:调用quit()和exit()会引发NameError
我正在通过Jupyter执行一个Python文件通过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 要检查正在运行的环境,可以在代码顶部
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()