完全禁用IPython输出缓存

Mic*_*ael 12 history caching ipython output

我在IPython中处理一些GB大小的numpy数组.当我删除它们时,我肯定希望它们消失,以便恢复内存.IPythons输出缓存在那里非常烦人,因为它甚至在删除了最后一个主动预期的对它们的引用后仍保持对象存活.我已经开始了

c.TerminalInteractiveShell.cache_size = 0

在IPython配置中,但这仅禁用条目的缓存,仍然创建_oh其他变量_,__依此类推.我也知道%xdel,但无论如何,我宁愿完全禁用它,因为我很少使用输出历史,所以平原del会立即再次运行.

Mat*_*att 6

看看IPython/core/displayhook.py第209-214行我会说它不可配置.您可以尝试制作PR以添加完全禁用它的选项.

  • 这实际上给了我正确的想法!仔细查看代码,它会检查`_`是否存在 - 取决于版本 - `__builtin__`或`IPython.core.py3compat.builtin_mod`.所以在`__builtin __._ = True`之后,历史就消失了!谢谢! (2认同)

Mic*_*ael 6

输入

echo "__builtin__._ = True" > ~/.config/ipython/profile_default/startup/00-disable-history.py
Run Code Online (Sandbox Code Playgroud)

你的历史应该消失了.

编辑:

似乎配置目录的路径有时有点不同,~/.config/ipython或者只是~/.ipython/.所以只需检查你得到的那个并相应地调整路径.该解决方案仍然有效jupyter console.