我在 Windows 中使用 pycharm,但 python 后端需要在 unix 上运行,因此我使用 vagrant 在 ubuntu 中托管 python 应用程序/代码,但是我也需要做一些绘图,有没有一种方法可以在中启用 matplotlab 绘图pycharm 和 vagrant?谢谢
尝试在 PyCharm 运行配置中设置 DISPLAY 环境变量,如下所示:
DISPLAY=localhost:10.0
我从 vagrant ssh 连接获取了显示值
vagrant@vagrant:$ echo $DISPLAY
localhost:10.0
如果有人偶然发现同样的问题..您可以通过多种方式通过 PyCharm 启用 X11。
我的解决方案是使用-Y标志(或-X)创建终端会话,例如:
ssh -X user@ip
或
ssh -Y user@ip
-Y 对我有用,因为它支持可信 X11 转发,不受 X11 安全扩展控制(ssh 手册页)
您还需要导出DISPLAY变量,就像user138180所说
对我来说,有效的 matplotlib 后端是“tkagg”。有关更多信息,请参阅 matplotlib 常见问题解答。
我的远程机器是 centos 7。我的本地机器正在运行 Manjaro。
打开终端会话的解决方法是遵循 Tarun 所说的here。
举个例子,(谢谢,user138180),您可以使用此代码来测试它是否有效:
import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt
plt.interactive(False)
plt.hist(np.random.randn(100))
plt.show()