Pycharm 远程执行无法显示 cv2.imshow()
的原因分析及解决方案
问题分析
X Server 缺失
cv2.imshow()
需要一个 X Server 来渲染 GUI 窗口,而 XShell 默认没有内置 X Server,导致无法显示窗口。- MobaXterm 自带 X Server,运行时会自动启动,因此可以正常显示。
解决方案
修改 Pycharm 运行配置
-
进入 Run → Edit Configurations。
-
在 Environment variables 中添加:
DISPLAY=localhost:10.0
-
其中
localhost:10.0
替换为echo $DISPLAY
显示的值。
运行脚本
- 现在运行 Pycharm 远程 Python 代码,
cv2.imshow()
应该可以正常显示窗口。
总结
- Pycharm 远程调试 需要手动设置
DISPLAY
变量,并在本地运行 X Server(如 MobaXterm)。
这样,无论是 SSH 远程执行还是 Pycharm 远程调试,都能正常显示 cv2.imshow()
窗口。