如何禁用jupyter笔记本历史记录

我正在使用Jupyter Notebook在Python 2中编写代码 . 我将其调用为:

c:\python27\scripts\jupyter-notebook --no-browser

同时我使用IPython控制台,启动时带:

c:\python27\scripts\ipython

我遇到的问题是Jupyter历史被保存并且与IPython历史混合在一起 . 我不想要Jupyter笔记本的历史 - 有没有办法禁用它,同时保留IPython **历史记录?

Platform: win32

更新:

我试图使用建议的设置摘要方法 . 但是当我在配置中输入“c.Session.digest_history_size = 0”时,重新启动笔记本,在某个单元格中写入“print'next test'”,重启单独的IPython并在按下后我得到的第一件事是“打印”下一个测试“” .

我怎么能摆脱它?

回答(1)

2 years ago

有关此解决方案的来源,请参阅this Jupyter issue on Github .

Introduction to IPython Configuration中使用位于 ~/.ipython/profile_default/ 主目录中的配置脚本进行了讨论 . 这是 default 配置文件的相关目录,如果创建其他配置文件,则会显示其他类似目录 .

在该目录中,可以包含文件 ipython_config.py ,它将在IPython的每个用法上运行 . 但是,文件 ipython_kernel_config.py 将在调用IPython内核时运行,而不是在调用IPython解释器本身时运行 . 可以通过 ipython kernel --debug 来测试这个 .

Jupyter笔记本使用这种样式的内核调用 . 因此,在目录 ~/.ipython/profile_default/ (假设 default 配置文件)中包含脚本 ipython_kernel_config.py ,其中包含以下行:

# Configuration file for ipython-kernel.

c = get_config()

c.HistoryManager.enabled = False

在使用该样式的内核调用时应该完全禁用历史记录管理器 . 因此,不应该从Jupyter调用填充命令历史记录 .

顺便提一下,同一目录中的文件 history.sqlite 是命令历史 . 因此,删除它或将其移动到不同的文件名将清除命令历史记录缓冲区 .