在连接到Vagrant或远程SSH时,如何在PyCharm中启用X-11转发?

11

我在Windows上使用PyCharm,但Python后端需要在Unix上运行,因此我使用Vagrant将Python应用/代码托管在Ubuntu中。但是我还需要进行一些绘图操作,有没有办法在PyCharm中通过Vagrant启用Matplotlib绘图?谢谢。

2个回答

8

尝试像这样在PyCharm运行配置中设置DISPLAY环境变量:

DISPLAY=localhost:10.0

我通过vagrant ssh连接获取了我的显示值

vagrant@vagrant:$ echo $DISPLAY
localhost:10.0

您需要在Windows上运行XMing或类似的X服务器吗? - beldaz

3

如果有人遇到相同的问题,这里提供了几种启用PyCharm X11的方法。

对我来说解决方案是使用-Y标志(或-X)创建终端会话,例如:

ssh -X user@ip

或者

ssh -Y user@ip

-Y 对我有用,因为它启用了可信的 X11 转发,不受 X11 安全扩展控制的影响 (ssh 手册)。
user138180 所说,您还需要导出 DISPLAY 变量。
对我来说,有效的 matplotlib 后端 是“tkagg”。请参阅 matplotlib FAQ 以获取更多信息。
我的远程机器是 CentOS 7。我的本地机器正在运行 Manjaro。
解决方法是按照 Tarun 在这里所说的做法操作,而不是打开终端会话。
例如(感谢 user138180),您可以使用此代码测试是否起作用:
import matplotlib matplotlib.use('TkAgg')
import matplotlib.pyplot as plt plt.interactive(False)

plt.hist(np.random.randn(100))
plt.show()

1
这对我在本地的MacOSx和远程的Ubuntu上都有效。此外,以下是我的代码行:import matplotlib matplotlib.use('TkAgg') import matplotlib.pyplot as plt plt.interactive(False) plt.hist(np.random.randn(100)) plt.show() - tamtam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接