6

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

我正在尝试将本地机器(笔记本电脑)上的 IPython QTConsole 连接到在 Internet 上的 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 命令行从我的笔记本电脑连接到这个远程内核?

4

1 回答 1

9

首先,您必须知道服务器的 IP 地址(ifconfig在 posix 和ipconfigwindows 上)。假设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,这将停止你的内核。只需单击关闭窗口按钮。

于 2013-08-09T16:15:50.893 回答