很多时候,我会通过 ssh 连接到另一台计算机来执行 Python 工作。在编写代码时,我喜欢打开 ipython shell 进行快速测试。出于某种原因,我无法让 matplotlib 打开图形。以下是示例:
[mwoods@linux_box ~]$ ssh -X me@mac_machine
Password:
Last login: Fri Dec 15 13:03:37 2017
mwoods:~ /path/to/ipython
Python 3.6.3 |Anaconda, Inc.| (default, Oct 6 2017, 12:04:38)
Type ‘copyright’, ‘credit’ or ‘license’ for more information
IPython 6.1.0 — An enhanced Interactive Python. Type ‘?’ for help.
In [1]: import matplotlib as mpl
In [2]: mpl.use('Agg')
In [3]: import matplotlib.pyplot as plt
In [4]: import numpy as np
In [5]: plt.ion()
In [6]: plt.imshow(np.random.rand(8, 8))
Out[6]: <matplotlib.image.AxesImage at hex_number>
In [7]:
没有打开图。如图所示,我从 Linux 机器开始,然后通过 ssh 进入 Macintosh(我在 Mac 上拥有管理员权限)。Mac 运行的是 macOS Sierra(10.12.6),安装了 Anaconda 版本 5.0.1。其他 X11 转发命令(例如 xpdf、display)通过相同的 ssh 连接工作,因此我认为这与两台机器上的 ssh_config 或 sshd_config 文件无关。有人可以帮忙吗?
答案1
也许给-Y 标志到 ssh尝试代替 -X。请参阅ForwardX11可信了解可能发生的情况。