2012-07-13 19 views
5

Me gustaría conectarme a un cuaderno IPython en una computadora remota (ya sea a través de un ssh-tunnel o vía https) y hacer que el cuaderno ipython abra un diagrama matplotlib en una nueva ventana (frente a 'en línea').¿Se puede acceder remotamente a un Portátil IPython sin usar el trazado en línea?

¿Esto es posible?

Cuando intento trazar sin el back-end 'en línea', el kernel portátil informa ': no ​​se puede conectar al servidor X', y se cuelga.

El servidor X11 se está ejecutando en la computadora cliente, y habilité el reenvío X11 usando la opción -Y al crear el túnel ssh.

Gracias por cualquier consejo.

+1

También debe habilitar el reenvío X11 en la computadora remota (con las opciones de sshd). –

+0

Gracias, pero creo que esta opción está habilitada, es decir, puedo usar X11 para abrir ventanas para emacs, gimp, etc ... pero de alguna manera el kernel de ipython que ejecuta el portátil no puede. – user1522298

+0

En primer lugar, dijiste "usando la opción -Y": debería ser '-X'. Ahora, he podido hacer esto desde una de mis computadoras Ubuntu (aunque era un poco inestable ... tendía a romper mi conexión adsl). Desde mi otra caja (con internet directo), los kernels de ipython se cuelgan con "no se puede conectar al servidor X" si trato de 'mostrar()' una gráfica. Hasta el momento, no he resuelto por qué ... – drevicko

Respuesta

4

Sí, lo es, al menos a través de túnel de puerto ssh.

(NOTA: los ejemplos se realizaron por soplado en Ubuntu 12.04, pero el mismo principio debería funcionar para otras plataformas)

que estaba teniendo problemas similares y se encontró que si corro el cuaderno IPython desde dentro del anclaje y X-reenvío sesión ssh (es decir, el que configura el puerto y X reenvío), funciona. Clunky y molesto, pero funciona. Por ejemplo:

at-home:~$ ssh -X -L 8889:localhost:8888 my.server 
... login message from my.server 
my.server:$ cd /folder/containing/my/notebooks 
my.server:$ ipython notebook 
[NotebookApp] .... lots of info about the IPython notebook server including 
[NotebookApp] The IPython notebook is running at 'http://127.0.0.1:8888/' 

Tenga en cuenta que he reenviado puerto 8889 - esto significa que utilizo http://localhost:8889/ en un navegador en mi máquina at-home. Para mí, esto funciona muy bien con el backend Qt4Agg.

Sospecho que también funcionará para acceder a los portátiles a través de https si ejecuta el servidor portátil IPython de esta manera (es decir, desde una sesión ssh -X). Tenga en cuenta que los gráficos aparecerán en la máquina desde la que se reenvió la sesión X. Si alguien ejecuta una computadora portátil en un navegador en otra máquina, ¡esto podría ser un poco extraño!

Puede ser posible indicarle a un servidor portátil con IPython que se está ejecutando cómo encontrar el servidor X reenviado por una nueva sesión ssh, pero no estoy seguro de cómo (ediciones informadas son bienvenidas).

+0

+1! gracias, esto resolvió mi problema de "reenvío de puerto" un portátil ipython remoto de inmediato – Acorbe

Cuestiones relacionadas