如何增加 ipython qtconsole 回滚缓冲区限制

Posted

技术标签:

【中文标题】如何增加 ipython qtconsole 回滚缓冲区限制【英文标题】:How to increase the ipython qtconsole scrollback buffer limit 【发布时间】:2013-01-21 03:51:54 【问题描述】:

当我使用以下任何一种加载 ipython 时:

ipython qtconsole
ipython qtconsole --pylab
ipython qtconsole --pylab inline

输出缓冲区只保存最后 500 行。要查看此运行:

for x in range(0, 501):
   ...:     print x

是否有此配置选项? 我试过调整 --cache-size 但这似乎没有什么不同。

【问题讨论】:

【参考方案1】:

如果您使用Jupyter,则接受的答案不再正确。相反,命令行选项应该是:

jupyter qtconsole --ConsoleWidget.buffer_size=5000

你可以选择任何你想要的值,只要让它大于默认的 500。

如果您想永久保存,请转到您的主目录 - C:\Users\username/Users/username/home/username - 然后进入 .jupyter 文件夹(如果不存在则创建它),然后创建文件jupyter_qtconsole_config.py 并在您喜欢的编辑器中打开它。添加以下行:

c.ConsoleWidget.buffer_size=5000

同样,数字可以是任何值,只要它是大于 500 的整数即可。不要担心 c 没有在这个特定文件中定义,它已经在启动机制的其他地方定义了。


感谢@firescape 指向正确方向的指针。

【讨论】:

【参考方案2】:

快点:

ipython qtconsole --IPythonWidget.buffer_size=1000

或者您可以通过添加永久设置它:

c.IPythonWidget.buffer_size=1000

在你的 ipython 配置文件中。

为了发现这类事情,一个有用的技巧是:

ipython qtconsole --help-all | grep PATTERN

例如,您已经有了“缓冲区”,所以:

$> ipython qtconsole --help-all | grep -C 3 buffer
...
--IPythonWidget.buffer_size=<Integer>
    Default: 500
    The maximum number of lines of text before truncation. Specifying a non-
    positive number disables text truncation (not recommended).

如果 IPython 使用的名称与您预期的不同,并且第一次搜索没有结果,那么您可以使用 500,因为您知道要更改的值是什么,这也会找到相关的配置。

【讨论】:

优秀。每个建议都有效。也感谢算法找到其他配置选项。请注意,我认为包含所有默认值的配置文件没有提及 buffer_size。 ipython_qtconsole_config.py 将是相关的。它应该在那里。如果没有,您可能会生成一个新配置 ipython profile create fresh,然后查看那里。 我没有 ipython_qtconsole_config.py 。但现在'ipython profile create fresh' 是一个。唔。推测:这可能是因为 qtconsole 最初在 fedora 17 中不起作用。我必须手动“pip-python install pygments”才能让“ipython qtconsole”工作。到那时我可能已经创建了个人资料。 是的,qtconsole 必须是可导入的才能生成默认配置文件。 对于 Jupyter QtConsole,配置文件是 jupyter_qtconsole_config.py,您需要添加的行是 c.JupyterWidget.buffer_size=1000。请注意(至少在 Windows 上)配置文件存储在 ~/.jupyter 目录中。我找不到生成这个配置文件的方法,所以我只做了一个空的。

以上是关于如何增加 ipython qtconsole 回滚缓冲区限制的主要内容,如果未能解决你的问题,请参考以下文章

指定 ipython 配置文件 qtconsole

如何从 ipython qtconsole 使用标准库“记录”记录到文件?

在 IPython qtconsole 中确定终端宽度

脚本执行后启动 ipython qtconsole 作为交互式解释器

Anaconda ipython qtconsole 启动器

如何在我的应用程序中生成 IPython qtconsole,同时将现有对象传递到该控制台