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



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

测试.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

基本上,当你从jupyter运行代码时,你正在加载一组不同的内置库

无论如何,退出只能从解释程序中使用

或者你可以简单地使用

sys.exit()

做同样的事情:(

相关内容

最新更新