IPython启动脚本:检查QtConsole

时间:2017-12-08 11:21:58

标签: python-3.x ipython jupyter

对于我的IPython QtConsole,我的profile_default/startup文件夹中有一个启动脚本,其中包含以下几行:

ipy = get_ipython()

try:
    plot
except NameError:  #  not loaded yet
    ipy.run_line_magic("pylab", "inline")

这在QtConsole和Notebook中运行良好,但是如果我现在运行ipython没有子命令,即在Windows命令行中,它会输出一个“内联”的错误。 GUI无效。

我有什么方法可以在启动脚本中检查子命令(qtconsole,notebook或" None"),这样我可以避免该消息吗?

(IPython QtConsole 3.2.0,WinPython-64bit-3.4.3.4)

1 个答案:

答案 0 :(得分:1)

我将假设ipyget_ipython()的结果。

警告:您不应该尝试在不同的前端使用不同的代码。它在某个时刻中断,并导致难以调试不能发挥作用的问题。 Nasal demons将会注意到最小的失误困扰着你。

那就是说,在纯粹的,经典的终端IPython中你可以验证:

In [1]: type(get_ipython())
Out[1]: IPython.terminal.interactiveshell.TerminalInteractiveShell

对于Notebook和QtConsole(ZMQInteractiveShell),情况并非如此。在这两种情况下,IPython.terminal.interactiveshell.TerminalInteractiveShell都应该是可导入的,您可以使用issubclass查看您的情况。

现在,您还可以在Windows上创建自己的别名(不确定如何),将额外的命令行参数传递给IPython,以使notebookqtconsole不具有相同的启动顺序。