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会在远端服务器跳出,本地不会报错,完美解决

相关推荐
做怪小疯子18 小时前
华为笔试0429
python·numpy
Warson_L18 小时前
Dictionary
python
寒山李白20 小时前
解决 python-docx 生成的 Word 文档打开时弹出“无法读取内容“警告
python·word·wps·文档·docx·qoder
2401_8323655221 小时前
JavaScript中rest参数(...args)取代arguments的优势
jvm·数据库·python
Sirius.z21 小时前
第J3周:DenseNet121算法详解
python
2301_7796224121 小时前
Go语言怎么用信号量控制并发_Go语言semaphore信号量教程【入门】
jvm·数据库·python
2301_7662834421 小时前
c++如何将控制台输出保存到文件_cout重定向到txt【详解】
jvm·数据库·python
小康小小涵1 天前
基于ESP32S3实现无人机RID模块底层源码编译
linux·开发语言·python
lzjava20241 天前
Python的函数
开发语言·python
Awesome Baron1 天前
skill、tool calling、MCP区别
开发语言·人工智能·python