pyvirtualdisplay 中的 XStartError

roc*_*ves 2 python ffmpeg xvfb pyvirtualdisplay

我正在本地计算机上运行同事笔记本(她使用了 collab)。

导入后,立即执行这行代码

display = pyvirtualdisplay.Display(visible=0, size=(1400, 900))
_ = display.start()
Run Code Online (Sandbox Code Playgroud)

导致此错误(缩写,它的页面很长):

~/opt/anaconda3/envs/general-ml/lib/python3.8/site-packages/pyvirtualdisplay/abstractdisplay.py in _wait_for_pipe_text(self, rfd)
    293             (rfd_changed_ls, _, _) = select.select([rfd], [], [], 0.1)
    294             if not self.is_alive():
--> 295                 raise XStartError(
    296                     "%s program closed. command: %s stderr: %s"
    297                     % (self._program, self._command, self.stderr)

XStartError: Xvfb program closed. command: ['Xvfb', '-br', '-nolisten', 'tcp', '-screen', '0', '1400x900x24', '-displayfd', '67'] stderr: b'_XSERVTransmkdir: 
ERROR: euid != 0,directory /tmp/.X11-unix will not be created.
_XSERVTransSocketUNIXCreateListener: mkdir(/tmp/.X11-unix) failed, errno = 2
_XSERVTransMakeAllCOTSServerListeners: failed to create listener for local\n_XSERVTransmkdir: ERROR: euid != 0,directory /tmp/.X11-unix will not be created.
_XSERVTransSocketUNIXCreateListener: mkdir(/tmp/.X11-unix) failed, errno = 2
_XSERVTransMakeAllCOTSServerListeners: failed to create listener for local
_XSERVTransmkdir: ERROR: euid != 0,directory /tmp/.X11-unix will not be created

... AND ON AND ON FOREVER.
Run Code Online (Sandbox Code Playgroud)

我使用 conda 安装pyvirtualdisplay包并Xvfb从 Xquarts 安装。

这两个工具对我来说都是全新的,所以我几乎不知道它们是做什么的。我试图让这个笔记本运行起来,这样我就可以学到更多东西,但在开始之前我就陷入了困境。

Avi*_*lev 5

我的 M1 MacBook Pro 上也出现了类似的错误,但我在网上找不到任何修复方法。我最终通过下载 XQuartz并运行它来解决这个问题:

主机+

我希望它能帮助任何人。