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

Too*_*ppe 5 python ipython

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

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

我现在不担心安全性,只需要简单的方法来做到这一点.

我知道我可以使用somethign在远程(Linode服务器)上启动内核,例如:

Ipython kernel --ip=0.0.0.0
Run Code Online (Sandbox Code Playgroud)

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

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

让我们说

Remote machine  IP adres = aa.bb.cc.dd
Remote machine  Login name = root
Remote machine  hostname = dummyname
Run Code Online (Sandbox Code Playgroud)

本地机(笔记本电脑)

 IPAdress = qq.ww.ee.rr
Run Code Online (Sandbox Code Playgroud)

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

ssh root@aa.bb.cc.dd
Run Code Online (Sandbox Code Playgroud)

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

Vik*_*kez 7

首先,您必须知道服务器的IP地址(ifconfig在posix和ipconfigWindows上).可以说IP地址是10.10.10.10.

然后,您可以在服务器上启动内核:

ipython kernel --ip=* --IPKernelApp.connection_file=/tmp/kernel.json
Run Code Online (Sandbox Code Playgroud)

内核启动时,获取内容 /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
}
Run Code Online (Sandbox Code Playgroud)

在您的客户端上创建一个/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
}
Run Code Online (Sandbox Code Playgroud)

之后你可以开始qtconsole:

ipython qtconsole --existing /path/to/your/kernel.json
Run Code Online (Sandbox Code Playgroud)

您可以根据qtconsoles需要将同一内核连接到同一个内核.

注意:不要调用exit()函数退出qtconsole,这将停止你的内核.只需单击关闭窗口按钮即可.