gpt4 book ai didi

python - "sh: Error: Can' t 打开显示“当我尝试从 python 启动程序时

转载 作者:太空宇宙 更新时间:2023-11-04 05:35:35 25 4
gpt4 key购买 nike

我有一个非常奇怪的问题,基本上我想从我的 Python 脚本启动 xpdf (或 Libreoffice),该脚本由 systemd-service 启动。当我从终端启动脚本时,一切工作正常,但是当我插入启动服务的 USB 设备时,我会在系统日志中收到此错误:

sh[2321]: Error: Can't open Display

这个错误与 X11 有关,这是我的 Google 搜索告诉我的。所以,我的问题是:如何从 Python 正确运行 xpdf 或 libreoffice 等程序?

 import subprocess
subprocess.call("/usr/bin/xpdf")

基本上就是这样。我知道这与图形环境有关,但我不知道如何解决。

最佳答案

X 显示系统具有非常好的安全性,可以阻止随机本地进程仅在本地屏幕上显示内容(在过去昂贵的 Sun 和 SGI 系统中,这更是一个问题,计算机实验室经常让用户远程登录到其他设备。这会很有趣!)。

如果运行 xpdf 的用户与登录 X session 的用户是同一用户,那么您只需告诉 xpdf 将其 UI 连接到哪里即可。这通常是通过将 DISPLAY=:0 导出到环境来完成的,这意味着“连接到第一个本地屏幕”。大多数 X 程序还支持 -display :0 参数。

这样做:

/usr/bin/xpdf -display :0

或者:

DISPLAY=:0 /usr/bin/xpdf

您不太可能拥有多个 X session ,因此 :0 在 99% 的情况下都可以工作。

关于python - "sh: Error: Can' t 打开显示“当我尝试从 python 启动程序时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44969160/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com