【发布时间】:2018-12-26 14:31:18
【问题描述】:
我会经常使用IPython.embed() 来检查运行代码的状态。在早期版本的 IPython 中,它正确地确定了我的终端 (xterm) 的颜色功能,并使用了彩色文本。在最新版本的IPython(7.2.0)中,使用IPython.embed()时只显示黑白文本。
基于the documentation,我应该能够通过设置c.InteractiveShell.colors = 'Linux' 在默认配置文件中覆盖此默认设置。但是,此设置仅适用于 IPython 的独立实例,不适用于嵌入式会话。
我可以使用%colors Linux 魔术方法为每个实例更正此问题。但是,这应该会自动运行,无需在每次嵌入后进行额外配置。
如果我通过直接运行 ipython3 来启动一个独立的 IPython 实例,则终端颜色设置正确。但是,这不是我最常见的工作流程的选项。
这是使用 python 3.5.2 测试的,在 Linux Mint 19(基于 Ubuntu 18.04)上运行。 PyPI 上发生这种情况的第一个 ipython 版本是 7.0.0 版。可用的先前版本 6.5.0 正确使用带有 IPython.embed() 的终端颜色。目前,我已恢复到上一个工作版本 6.5.0,但我想保持最新版本的最新状态。
【问题讨论】:
-
有一些极端情况是stdin/stdout/stderr被重定向而不是tty,所以下面的方法不起作用;有关详细信息,请参阅my answer。