退出IPython

15 投票
5 回答
32986 浏览
提问于 2025-04-15 14:51

我非常喜欢使用IPython来操作Python解释器。不过,我总是需要输入exit来退出,但系统却提示我“输入exit()来退出。”

我知道可以按Ctrl-D来退出,但有没有办法让我只输入exit而不加括号就能退出IPython呢?

更新:感谢nosklo,其实只需在你的ipy_user_conf.py文件中的main()函数里添加以下一行,就可以轻松实现:

# type exit to exit
ip.ex("type(exit).__repr__ = lambda s: setattr(s.shell, 'exit_now', True) or ''") 

5 个回答

2

在 iPython 6.2.1 版本中,你只需要输入 exit 就可以退出解释器了:

$ ipython
Python 3.5.2 (default, Nov 23 2017, 16:37:01) 
Type 'copyright', 'credits' or 'license' for more information
IPython 6.2.1 -- An enhanced Interactive Python. Type '?' for help.
In [1]: exit
$ 
5

你可以使用 %exit 或者 %Exit 来退出程序。如果你开启了确认退出的功能,还可以直接跳过确认步骤。
如果你觉得每次输入这些命令太麻烦,可以把它简化成 %e,只需要在你的 ipythonrc 文件里加上 execute __IPYTHON__.magic_e = __IPYTHON__.magic_exit 这行代码就可以了。

16
>>> import sys
>>> class Quitter(object):
...     def __repr__(self):
...         sys.exit()
... 
>>> exit = Quitter()

你可以这样使用它:

>>> exit

编辑:

我自己不使用 ipython,但它似乎有一些奇怪的 sys.exit 处理方式。
我找到的解决办法如下:

In [1]: type(exit).__repr__ = lambda s: setattr(s.shell, 'exit_now', True) or ''

用法:

In [2]: exit

撰写回答