将IPython控制台连接到Internet上的内核

时间:2013-08-09 12:21:50

标签: python ipython

我一直在努力让这个工作。我已经跟踪了我能找到的在线资料但是没有成功,例如:Ipython Documentation

我正在尝试将本地计算机(笔记本电脑)上的IPython QTConsole连接到互联网上Linode云服务器上运行的IPython内核。

我现在并不担心安全性,只需要采用简单的方式来实现这一点。

我知道我可以使用像:

之类的东西在远程(Linode服务器)上启动内核
Ipython kernel --ip=0.0.0.0

一旦我运行这个,我可以记下kernel-xxxx.json文件,我也知道要在远程机器上找到它。使用0.0.0.0表示法我理解内核将监听外部连接。

我只是不确定如何从我的本地机器(笔记本电脑)连接到它

让我们说

Remote machine  IP adres = aa.bb.cc.dd
Remote machine  Login name = root
Remote machine  hostname = dummyname

本地机器(笔记本电脑)

 IPAdress = qq.ww.ee.rr

我可以正常看到服务器和ssh,例如。

ssh root@aa.bb.cc.dd

有人可以帮我用ipython命令行从我的笔记本电脑连接到这个远程内核吗?

1 个答案:

答案 0 :(得分:7)

首先,您必须知道服务器的IP地址(posix上的ifconfig和Windows上的ipconfig。假设IP地址为10.10.10.10

然后您可以使用以下命令在服务器上启动内核:

ipython kernel --ip=* --IPKernelApp.connection_file=/tmp/kernel.json

启动内核后,获取/tmp/kernel.json

的内容
$ cat /tmp/kernel.json
{
  "stdin_port": 59836,
  "ip": "*",
  "hb_port": 50806,
  "key": "11c2f53e-ad38-4d1d-b038-2f4bd04c4d49",
  "shell_port": 49904,
  "iopub_port": 55081
}

在您的客户端上创建一个具有相同内容的/path/to/your/kernel.json文件,但ip地址是真实IP地址,而不是*

{
  "stdin_port": 59836,
  "ip": "10.10.10.10",
  "hb_port": 50806,
  "key": "11c2f53e-ad38-4d1d-b038-2f4bd04c4d49",
  "shell_port": 49904,
  "iopub_port": 55081
}

之后,您可以使用

开始qtconsole
ipython qtconsole --existing /path/to/your/kernel.json

您可以根据需要将尽可能多的qtconsoles连接到同一个内核。

注意:请勿调用exit()函数退出qtconsole,这将停止内核。只需单击关闭窗口按钮。