【发布时间】:2015-01-04 18:54:42
【问题描述】:
我有一个使用 SSH 远程连接的无头 Ubuntu 14.04 服务器。我想使用 matplotlib 并在 ssh 客户端上显示绘图。例如,我会使用:
ssh -X name@server.com
然后从 Python 控制台,我希望它在窗口中生成一个图:
import matplotlib.pyplot as plt
plt.plot(range(10))
plt.show()
我已经在我的 virtualenv 中安装了 matplotlib,我运行了sudo apt-get install python-gtk2,但情节仍然没有出现。我想我错过了很多包裹。我可以安装一组相当少的 X 相关软件包来完成这项工作?我不想安装ubuntu-desktop。
【问题讨论】:
-
这不是同一个问题。我明确希望使用 X 后端,而另一个问题的接受答案可以解决该要求。
-
对不起,另一个问题经常出现,我的模式匹配过于激进。您可以启动其他 gui 程序吗?您是否在远程机器上运行了 xserver?
-
感谢您取消标记!在对与 x 相关的软件包进行了一些试验和错误之后,我可以让 xeyes 在 ssh 上运行。问题似乎是当我
pip install matplotlib时,它没有识别出安装了pygtk。因此,唯一安装的后端是 agg。问题可能是 pygtk 是在站点范围内安装的,而不是在我的 venv 中,但我为此 venv 启用了站点包。因此,import pygtk工作正常。但是 pip 安装程序似乎没有意识到我已经安装了它。 -
@10flow - 在您的特定情况下,自动检测要构建的后端可能相当古怪。一种解决方法是在构建 matplotlib 时手动指定所需的后端。您需要下载源代码(例如 tarball)并手动构建(或使用带有 gui 后端的预构建的东西,如 anaconda/canopy)。要指定后端,cp
setup.cfg.template到setup.cfg并相应地编辑它(文件本身有大量文档)。此外,如果它无法构建 gtk 后端,您将获得更多信息错误,而不仅仅是跳过它。
标签: python ubuntu ssh matplotlib