pycharm本地Failed to open X display(exiting)

pycharm本地Failed to open X display(exiting)

我在本地使用pycharm连接远端服务器,由于使用ssh连接所以程序无法在本地打开GUI界面,导致程序崩溃

这是一个非常经典的 "Headless Server(无头服务器)运行图形界面程序" 的问题。

问题原因: PyCharm 通过 SSH 远程连接服务器时,默认是一个 无图形界面(Headless) 的终端会话。当程序运行到需要调用 OpenGL 或 Open3D 创建窗口时,它找不到显示器(X Server),所以报错 Failed to open X display。

我直接使用 Remmina 远程桌面连接运行程序可以直接跳出GUI,这实际上是连接到了服务器上的一个图形桌面环境(如 Gnome, XFCE),那里有一个正在运行的 X Server,所以能跑通。

为了能在 PyCharm 本地打断点调试,同时又能让程序不崩溃(甚至能在 Remmina 那个桌面上看到渲染画面)

"借用" Remmina 的显示器 (Redirect Display)

1.在 Remmina (服务器远程桌面) 中获取 Display ID: 打开 Remmina 连接后的服务器终端,输入:

bash 复制代码
echo $DISPLAY

2.允许访问显示器 (关键步骤): 在 Remmina 的终端中输入:

bash 复制代码
xhost +

(输出 access control disabled, clients can connect from any host 即成功。这允许同一台机器上的其他进程------即 PyCharm 启动的进程------使用这个屏幕)。

3.配置 PyCharm 环境变量:

在 PyCharm 顶部菜单栏,点击 Run/Debug Configurations-> Edit Configurations 找到 Environment variables 选项

添加一项:DISPLAY=:0 (注意:这里的 :0 必须替换为你第一步里 echo 出来的具体值)。



设置好后,打好断点,debug程序,当运行到打开GUI时,GUI会在远端服务器跳出,本地不会报错,完美解决

相关推荐
TechWayfarer1 小时前
查询IP所在地的3种方案:从API到离线库,风控场景怎么选?
开发语言·网络·python·网络协议·tcp/ip
程序员榴莲1 小时前
Python 单例模式
开发语言·python·单例模式
hh.h.2 小时前
昇腾CANN ops-transformer 仓的 MC2 算子:MoE 模型的全到全通信
python·深度学习·transformer·cann
NiceCloud喜云3 小时前
Claude Files API 深入:从上传、复用到配额管理的工程化指南
android·java·数据库·人工智能·python·json·飞书
专注VB编程开发20年3 小时前
windows下python自带标准库 ≈ 70% 纯.py 源码,30% .pyd(DLL)
python
萌新小码农‍4 小时前
人工智能数学基础+python实例(人工智能学习day3)
开发语言·人工智能·python
毋语天5 小时前
FastAPI 进阶实战:请求体、文件上传、响应模型与数据校验
python·fastapi·api开发·数据校验·pydantic
ZhengEnCi6 小时前
09a-斯坦福 CS336 作业一:BPE 分词器
python·神经网络
测试员周周6 小时前
【Appium 系列】第18节-重试与容错 — 移动端测试的稳定性保障
人工智能·python·功能测试·ui·单元测试·appium·测试用例