リモート マシンで ipython カーネルを使用します。
user@remote_machine$ ipython kernel
[IPKernelApp] To connect another client to this kernel, use:
[IPKernelApp] --existing kernel-24970.json
次に、手動の ssh トンネリング (こちらを参照) を使用して、ローカル マシンの qtconsole をそれに接続します。
user@local_machine$ for port in $(cat kernel-24970.json | grep '_port' | grep -o '[0-9]\+'); do ssh remote_machine -Y -f -N -L $port:127.0.0.1:$port; done
user@local_machine$ ipython qtconsole --existing kernel-24970.json
これはうまくいきます。ただし、デバッグ中にデータを視覚化するには、matplotlib.pyplot を使用したいと考えています。ssh トンネルで (-Y を介して) X11 転送を有効にしましたが、何かをプロットしようとすると、次のエラーが発生します。
TclError: no display name and no $DISPLAY environment variable
あたかも X11 転送が何の効果も持たないかのように。
さらに、リモート マシンにアクセスできるようになったら、リモート カーネルを次のように起動しました。
user@remote_machine$ ipython qtconsole
ローカルマシンから同じプロセスを繰り返しました。今回は、エラーは発生しませんでした。しかし、数値はローカル マシンではなくリモート マシンでプロットされていました。
それで、リモートのipythonカーネルに接続してプロットをローカルに表示できるかどうか知っている人はいますか? (インラインモードが機能し、ローカルのqtconsoleにプロットが表示されることに注意してください。ただし、頻繁にズームインする必要があるため、これは役に立ちません)。