我们正在尝试为学生建立一个虚拟开发/研究云环境。学生需要能够登录、启动 Python IDE 并为他们的作业绘制一些图表。
我们运行的是 64 位 Ubuntu 12.10,安装了 Python 和 IDLE ide。学生使用 ssh -X 登录并启动 IDLE,它会生成一个 GUI 窗口。
问题:在 ide 中运行类似这样的程序
nltk.download()
产生一个新窗口。但当我们尝试这样的事情时:
book2.dispersion_plot("chair")
什么都没发生,我们期望出现一个新窗口并显示情节(这就是在本地机器上发生的事情)。我怀疑这与 X11 有关,但目前我对系统管理员的了解远远超出了我的深度。从 Mac(xQuartz)和 PC(xming)客户端都证实了这一点。任何帮助都将不胜感激。
答案1
知道了。
matplotlib 使用渲染后端,该后端必须与 x11 配合良好。但手动选择正确的后端 [matplotlib.use('TkAgg')] 会引发异常。事实证明,matplotlib 无法在 ubuntu 下使用 pip 正确构建,缺少一些依赖项——特别是 x11 友好后端所需的依赖项(在 matplotlibrc 中将默认值设置为“Agg”)。已修复:
pip uninstall matplotlib //unistalls matplotlib
apt-get build-dep matplotlib //download and build needed dependencies
pip -U matplotlib //force matplotlib rebuild
以上正确将默认后端设置为 TkAgg(在 matplotlibrc 中)。希望这对某些人有帮助!