为 X11 转发配置 macOS PyCharm

Posted

技术标签:

【中文标题】为 X11 转发配置 macOS PyCharm【英文标题】:Configuring macOS PyCharm for X11 Forwarding 【发布时间】:2017-12-12 05:17:25 【问题描述】:
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
x = np.linspace(1,1000)
plt.plot(np.linspace(1, 1000))
print("Works")
plt.show()

我试图在远程机器上的 PyCharm 中运行上面的简单代码,但在我的本地机器 (mac) 上显示绘图。情节没有出现。我确实在运行 xQuartz X11 服务器。 Pycharm 可以很好地运行远程解释器。

如果我从 macOS 终端运行它,使用

ssh -X pier@129.168.0.181
python test.py

plt.show() 有效。

我认为缺少的部分是 -X,它使 X11 能够转发到我的本地计算机。

PyCharm 的 ssh 命令在哪里包含这个?我花了太多时间试图弄清楚这一点......

注意:我也无法使用 PyCharm 的 Python 控制台进行绘图。未显示任何错误,但绘图未转发到我的本地计算机。

【问题讨论】:

【参考方案1】:

好的,我发现我需要做两件事才能让它对我来说足够好:

(1) 在Build, Execution, Deployment -> Python Console下的Environment Variables中设置DISPLAY = localhost:10.0

(2) 紧接着

import matplotlib
matplotlib.use('Qt5Agg')

有了这个,我可以像使用本地解释器一样使用远程解释器。

【讨论】:

【参考方案2】:

@Ippiers 答案的构建,在 Windows 上通过以下方式工作:

    安装 xming(并让它运行) 在启用 X11 转发的情况下运行 putty 会话 在 putty 会话上的 env 并检查 DISPLAY 变量,它可能是 localhost:10.0 在pycharms运行配置中设置这个显示变量DISPLAY=localhost:10.0 matplotlib.use('TkAgg') 因为 Qt5 给了我错误

【讨论】:

以上是关于为 X11 转发配置 macOS PyCharm的主要内容,如果未能解决你的问题,请参考以下文章

“通道 0 上的 X11 转发请求失败”

PuTTY+Xming实现X11的ssh转发

使用 Cygwin ssh 进行 X11 转发得到端口 6000 连接被拒绝

OS X 10.12.3 和 X11 转发到 ubuntu 的问题

X11 转发每 20-30 分钟失败一次

vscode集成终端如何开启x11转发?