在IPython笔记本旁边使用IPython控制台

28
在使用IPython笔记本时,我越来越希望它能够附带一个控制台,用于交互式编程。我发现自己添加代码片段进行测试,然后删除它们,这是好的使用方式。更糟糕的是,我在同一行更改命令,重复评估该行,完全改变该行的目的,直到我弄清楚为止,然后我会Ctrl-Z全部回到原始单元格内容。
如果我可以在笔记本底部拥有一个交互式解释器,那肯定会提高我的生产力。我知道笔记本有一个内核,但我无法将新的IPython控制台连接到它上面。所以我的疑问是:
  1. 有没有更有效的与笔记本一起工作的方法?
  2. 假设没有,如何将IPython控制台连接到笔记本内核?
谢谢!
2个回答

41

在一个单元格中输入%qtconsole,将会启动一个连接到相同内核的qtconsole。当然,你的内核必须是本地的。

当然,你也可以使用更长的方法:

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

我一直在使用文本编辑器和单独的IPython shell,感到非常恼火!有没有办法使用%paste魔术函数?我似乎只能将一行代码复制到控制台。 - Woody Pride
我尝试了这个,但它只是启动了一个空的控制台。我无法对其进行任何操作。我做错了什么吗? - Huey

12

当你在终端启动ipython笔记本时,它会输出类似于这样的内容:

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

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

ipython console --existing 4604c4c3

我认为这比其他解决方案更容易。


4
如果您已经启动了Jupyter服务器,请输入“jupyter console --existing 4604c4c3”。 - orluke
使用 exitquit 关闭控制台将关闭内核。使用 Ctrl+D 将保持其活动状态。 - Dmitriy Work

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接