WSL2下使用Pyvirtualdisplay遭遇XStartTimeoutError问题求助
解决WSL2中Pyvirtualdisplay启动Xvfb的XStartTimeoutError问题
具体解决方法:
1. 替换Xvfb启动参数,绕过-displayfd自动分配
WSL2环境下-displayfd选项可能存在管道或权限兼容问题,直接指定固定显示号:
修改你的Python代码:
from pyvirtualdisplay import Display virtual_display = Display(visible=0, size=(1400, 900), display=1) virtual_display.start()
2. 清理卡住的Xvfb进程
即便你确认xvfb在运行,也可能存在僵死进程占用资源,先强制清理:
pkill -9 Xvfb
清理完成后重新运行你的Python脚本。
3. 补全X11相关依赖包
部分缺失的X系依赖会导致Xvfb启动异常,执行以下命令安装:
sudo apt update && sudo apt install -y xvfb x11-utils libxext6 libxrender-dev
4. 提升WSL2系统资源配额
Xvfb启动需要一定资源,WSL2默认限制可能不足,在Windows用户目录下创建/修改.wslconfig文件:
[wsl2] memory=4GB processors=2
保存后执行wsl --shutdown重启WSL,再重新运行脚本。
5. 手动启动Xvfb后绑定使用
先手动启动Xvfb进程:
Xvfb :1 -screen 0 1400x900x24 -br -nolisten tcp &
再在Python脚本中直接绑定该显示:
import os os.environ['DISPLAY'] = ':1' # 后续直接执行渲染逻辑,无需再通过pyvirtualdisplay启动display
内容的提问来源于stack exchange,提问作者Rotkiv
相关产品推荐
相关产品推荐

