28

在使用 IPython 笔记本时,我越来越希望笔记本能够连接一个控制台,用于交互式编程。我发现自己添加行来测试代码片段,然后删除它们,这是很好的用法。在更糟糕的用法中,我正在更改同一行中的命令,一遍又一遍地评估该行,完全改变该行的目的,直到我做对了,然后我一直Ctrl-Z回到原始单元格内容.

如果我可以在笔记本底部有一个交互式解释器,那肯定会提高我的工作效率。我知道笔记本有内核,但我无法为其附加新的 ipython 控制台。所以我的奇迹是:

  1. 有没有更有效的方法来使用笔记本?
  2. 假设没有,我如何将 ipython 控制台附加到笔记本内核?

谢谢!

4

2 回答 2

41

只需%qtconsole在一个单元中执行,它就会启动一个附加到同一内核的 qtconsole。当然,您的内核需要是本地的。

您当然可以使用 long 方法:

In [1]: %connect_info
{
  "stdin_port": 50845, 
  "ip": "127.0.0.1", 
  "control_port": 50846, 
  "hb_port": 50847, 
  "signature_scheme": "hmac-sha256", 
  "key": "c68e7f64-f764-4417-ba3c-613a5bf99095", 
  "shell_port": 50843, 
  "transport": "tcp", 
  "iopub_port": 50844
}

Paste the above JSON into a file, and connect with:
    $> ipython <app> --existing <file>
or, if you are local, you can connect with just:
    $> ipython <app> --existing kernel-45781.json 
or even just:
    $> ipython <app> --existing 
if this is the most recent IPython session you have started.

然后

 ipython qtconsole --existing kernel-45781.json
于 2013-10-20T16:41:31.727 回答
12

当您在终端中启动 ipython notebook 时,它将输出如下内容:

 2015-03-26 13:05:52.772 [NotebookApp] Kernel started: 4604c4c3-523b-4373-bfdd-222eb1260156

然后像这样启动 ipython 控制台:

ipython console --existing 4604c4c3

我发现这比其他解决方案更容易。

于 2015-03-26T12:34:47.970 回答