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

相关推荐
全栈练习生9 小时前
AI Agent 沙箱
python·ai
SEO_juper10 小时前
用 Python 写一个 GEO 可见性检查脚本:你的网站现在能被 AI 引用吗
开发语言·人工智能·爬虫·python·seo·外贸独立站
用户83562907805111 小时前
使用 Python 对 Excel 工作表进行排序
后端·python
for_ever_love__12 小时前
MySQL 全文索引实战:FULLTEXT、ngram 中文分词与 MATCH AGAINST 到底该怎么用
java·python·mysql·全文检索·分词·索引·ngram
kite012112 小时前
TraeCode 与 TraeWork 合并:AI 时代 IDE 的三种形态与未来开发工具
ide·ade·traework·traecode
用户83562907805112 小时前
使用 Python 合并 PowerPoint 演示文稿
后端·python
weixin_4617694012 小时前
VS Code 中创建 Jupyter 文件(.ipynb)
ide·python·jupyter
2601_9669496512 小时前
多市场量化策略的数据接口应该如何设计:从数据层架构到策略接入
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
浪潮IT馆12 小时前
Android Studio 非最新版本下载安装教程
android·ide·android studio
全栈弄潮儿12 小时前
Python实战第1期:Python环境搭建与第一个程序
python