Spyder: Spyder Crashes on Windows During Remote Kernel Connection

Created on 28 Jun 2015  路  14Comments  路  Source: spyder-ide/spyder

This issue occurs for me on both spyder 2.3.4 and 2.3.5.2. I am running Windows 8.1 (x64), with Python 3.4.3 installed.

SSH keys are configured such that no password is needed to connect to server

From Git-Bash

ogi@OGI-DESKTOP ~/.ssh
$ ssh ogi@ubuntu
Welcome to Ubuntu 15.04 (GNU/Linux 3.19.0-21-generic x86_64)

 * Documentation:  https://help.ubuntu.com/

  System information as of Sun Jun 28 13:10:40 PDT 2015

  System load:  0.04               Processes:           166
  Usage of /:   27.4% of 21.29GB   Users logged in:     1
  Memory usage: 6%                 IP address for eth0: 192.168.1.13
  Swap usage:   0%                 IP address for eth1: 192.168.1.133

  Graph this data and manage this system at:
    https://landscape.canonical.com/

0 packages can be updated.
0 updates are security updates.

Last login: Sun Jun 28 13:02:28 2015 from 192.168.1.120
ogi@ubuntu:~$

I can confirm a connection with Paramiko (note: I had to apply some commits from a fork due to a known_hosts issue here: https://github.com/paramiko/paramiko/pull/473 )

IPython QtConsole 3.2.0
Python 3.4.3 |Continuum Analytics, Inc.| (default, Mar  6 2015, 12:06:10) [MSC v.1600 64 bit (AMD64)]
Type "copyright", "credits" or "license" for more information.

IPython 3.2.0 -- An enhanced Interactive Python.
Anaconda is brought to you by Continuum Analytics.
Please check out: http://continuum.io/thanks and https://anaconda.org
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.
%guiref   -> A brief reference about the graphical user interface.

In [1]: import paramiko

In [2]: client = paramiko.SSHClient()

In [3]: client.load_system_host_keys()

In [4]: server = 'ubuntu'

In [5]: username = 'ogi'

In [6]: port = 22

In [7]: keyfile = "C:\\Users\\ogi\\.ssh\\id_rsa"

In [8]: client.connect(server, port, username=username, key_filename=keyfile, look_for_keys=True)

In [9]: 

Generating the kernel on my server:


ogi@ubuntu:~$ ipython kernel --ip='*'
NOTE: When using the `ipython kernel` entry point, Ctrl-C will not work.

To exit, you will have to explicitly quit this process, by either sending
"quit" from a client, or using Ctrl-\ in UNIX-like environments.

To read more about this, see https://github.com/ipython/ipython/issues/2049


To connect another client to this kernel, use:
    --existing kernel-4481.json

In my working directory, I have my kernel-4481.json file with the following contents:

{
  "signature_scheme": "hmac-sha256",
  "control_port": 43208,
  "stdin_port": 42048,
  "ip": "0.0.0.0",
  "key": "076d1b3b-a644-4996-bb5e-ef810109c9b3",
  "transport": "tcp",
  "shell_port": 40174,
  "iopub_port": 56122,
  "hb_port": 48740
}

Here is a screen grab of my image before I click Ok and cause the crash:
http://i.imgur.com/1y1XWfN.png

Suggestions?

EDIT: 6/29/2015 - fixed a typo and inserted some better punctuation.

IPython Console Bug

Most helpful comment

Just wondering if there is a way to connect to Docker Linux Ipython running,
I have similar error connection.

Thanks

All 14 comments

@SylvainCorlay, could you help me with this one?

maybe should you try to update pyzmq to latest version.
I suspect the newest version of pyzmq solves some bugs

Will try this when I get home, however I'm pretty sure I have the latest version of pyzmq that is available through conda:

At my work PC

PS C:\Users\omoore> conda list pyzmq
# packages in environment at C:\Users\omoore\AppData\Local\Continuum\Miniconda3:
#
pyzmq                     14.7.0                   py34_0
PS C:\Users\omoore>

According to their changelog, that is the latest version

there is also the sometimes stupid bug of "\U" interpreted in strings of a directory as the start of a unicode character specification

I am able to ssh into my server from work

ogi@ubuntu:~$ conda list pyzmq
# packages in environment at /home/ogi/miniconda3:
#
pyzmq                     14.7.0                   py34_0
ogi@ubuntu:~$

Thanks for chiming in, I'm far from an expert here (trying to get remote development working for when I start school this Fall).

Could it be that you have to tune your ssh client to let the ipython protocol get through ?
I'm not expert in PuTTY, but I think the expert I saw had to click some settings, maybe in the "Tunnels" options, to have it's GUI goes through

I don't see how, you just specify a port to connect over ssh (22 in my case) ...the remainder ports are specified by the json file, and I have no firewall acting between the server and the client (it's all on a LAN and even if it wasn't, my router does allow for a range of ports that ipython may use through).

I should point out, I've never been able to get ipython to automatically setup the ssh port tunneling given the kernel-xxxx.json file (but it's worked when manually configuring ssh tunneling), but that's an independent issue from Spyder, and even if that was what was going on, Spyder should handle this error a little more gracefully than "python.exe has stopped responding".

Hi,

Sorry, I am not familiar with this, but I really need to sort it out.

My question is that Should I turn on the ipython server on the remote server before connecting? I have two ssh keys: one is for ssh connection and the other one is generated when I configure the ipython server. Which one I should use?

Great thanks.

I don't know which key you should use (try both!) but the remote server must be running, otherwise you have nothing to connect to.

Sorry for my silly questions :( So for my understanding, the 'ipython' and 'ipython notebook' are two different concepts, right? So to connect to the remote ipython from my local Spyder, I of course need to run the remote server, but I don't have to start the ipython notebook server. Am I right? Thanks very much.

A couple of questions:

  1. Do you want to connect to a notebook that you're running in your server?
  2. Or do you want to start a remote IPython process (or kernel) in your server and connect Spyder to it?

I was trying to connect to a remote IPython kernel/process running on a server (nothing to do with a notebook).

I should note I haven't tried this again with the newest version of Spyder or with IPython 4.0.

I am trying to start a remote IPython process (kernel) in remote server and connect Spyder to it. But still fighting with this!!!

The remote server is Ubuntu server running as Virtual Machine (VirtualBox). The IP is 10.0.2.15.

Local Spyder is running on Windows 7. Version is 2.3.5.2.

I define port forward in VirtualBox from 127.0.1.1:22 to 10.0.2.15:22, by which I can use PuTTY to connect to the remote server by SSH.

Anaconda is installed in the remote server. To start a ipython kernel on the remote server, I use:

image

I copy the kernel-remote.json file from the remote server to my local Windows.

Then in my local Spyder, I add the remote kernel as:

image

Then when I click OK to connect, the python crashes with the error message:

image

Then I open a command window, try to connect to the remote ipython kernel by:

image

I get the error message below:

image

Now I am confused it is the problem from Spyder, or IPython, or the configuration of remote server. I lose my direction where to go. Using the remote kernel is very important in my project, so Please help me!!!!

Just wondering if there is a way to connect to Docker Linux Ipython running,
I have similar error connection.

Thanks

Was this page helpful?
0 / 5 - 0 ratings