如何禁用Jupyter/IPython对中间匿名变量的保存功能?
解决Jupyter自动保存编号输出变量的问题
要禁用Jupyter自动生成_1、_2这类编号输出变量,同时保留DataFrame的HTML显示,有两种实用方法:
临时生效(仅当前会话)
在Jupyter单元格里运行以下代码,立刻清理现有编号变量并关闭后续缓存:
from IPython import get_ipython ip = get_ipython() # 删掉已存在的_1、_2这类编号变量 for var in list(ip.user_ns.keys()): if var.startswith('_') and var[1:].isdigit(): del ip.user_ns[var] # 关闭输出缓存,禁止生成新的编号变量 ip.run_line_magic('config', 'InteractiveShell.cache_size = 0')
永久生效(所有新会话)
- 打开终端,生成IPython配置文件(无则创建,有则跳过):
ipython profile create
- 找到配置文件(通常路径为
~/.ipython/profile_default/ipython_config.py),用编辑器打开后添加或修改:
# 禁用历史输出缓存,不再生成_1、_2等变量 c.InteractiveShell.cache_size = 0
- 重启Jupyter笔记本,配置即可生效。
说明:设置cache_size=0后,Jupyter不会再把单元格输出保存到编号变量中,但依然会正常渲染显示内容(包括DataFrame的HTML格式),完全匹配你的需求。
内容的提问来源于stack exchange,提问作者Adrian
相关产品推荐
相关产品推荐

