对于我的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)
答案 0 :(得分:1)
我将假设ipy
是get_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,以使notebook
和qtconsole
不具有相同的启动顺序。