我将经常使用它IPython.embed()
来检查运行代码的状态。在早期版本的IPython中,它可以正确确定终端(xterm)的颜色功能,并使用彩色文本。在最新版本的IPython(7.2.0)中,使用时仅显示黑白文本IPython.embed()
。
根据文档,我应该可以通过设置在默认配置文件中覆盖此默认值c.InteractiveShell.colors = 'Linux'
。但是,此设置仅适用于IPython的独立实例,不适用于嵌入式会话。
我可以使用%colors Linux
magic方法对每个实例进行更正。但是,这应该自动进行,而无需在每次嵌入后进行其他配置。
如果我通过ipython3
直接运行来启动IPython的独立实例,那么将正确设置终端颜色。但是,这不是我最常用的工作流程的选项。
这是使用运行在Linux Mint 19(基于Ubuntu 18.04)上的python 3.5.2测试的。在PyPI上发生的第一个ipython版本是7.0.0版本。可用的先前版本6.5.0正确使用带有终端颜色IPython.embed()
。目前,我已经恢复到6.5.0的最新工作版本,但是我想保持最新版本。
在嵌入式外壳程序内部,您可以键入config
以获取可用配置类别的列表:
In [1]: config
Available objects for config:
AliasManager
DisplayFormatter
HistoryManager
IPCompleter
InteractiveShellEmbed
LoggingMagics
MagicsManager
OSMagics
PrefilterManager
ScriptMagics
Run Code Online (Sandbox Code Playgroud)
您可以看到InteractiveShell
不可用,但是可用InteractiveShellEmbed
。
以下代码段应正确设置颜色:
from IPython import embed
from traitlets.config import get_config
c = get_config()
c.InteractiveShellEmbed.colors = "Linux"
embed(config=c)
Run Code Online (Sandbox Code Playgroud)