我正在通过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()
做同样的事情:(