You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

最新macOS下PyVirtualDisplay调用Xvfb报FileNotFoundError问题

问题根因

报错直接原因是GitHub Actions运行环境里找不到Xvfb(X虚拟帧缓冲)程序。
你在本地macOS上用brew装的XQuartz、gdal这些依赖只在你自己电脑上生效,GitHub Actions的CI环境是每次跑任务时全新初始化的独立虚拟机,不会同步你本地装的任何软件;而且PyVirtualDisplay只是个Python层的封装工具,不会自动帮你装底层依赖的Xvfb系统服务,调用时找不到对应二进制文件就直接抛文件不存在的错误。

正确配置步骤

优先选Ubuntu类型的GitHub Actions runner跑Mayavi的无头渲染任务,兼容性和稳定性比macOS runner好很多,配置如下:

  • 在工作流文件里,跑Python测试的步骤之前,加一步安装系统依赖:
- name: 安装无头渲染相关系统依赖
  run: |
    sudo apt update
    sudo apt install -y xvfb x11-utils libgdal-dev

这几个包分别对应你本地装的Xvfb、xdpyinfo、gdal组件,是适配Ubuntu环境的正确包名。

  • 跑测试的时候,如果你代码里已经写了Display(visible=0, size=(1280, 1024))的初始化逻辑,装完依赖直接跑测试命令就行;如果不想改业务代码,也可以在执行测试前手动启动Xvfb并配置好显示环境变量:
Xvfb :99 -screen 0 1280x1024x24 &
export DISPLAY=:99
python3 -m pytest test_animate.py

*注意:如果你必须使用macOS runner运行任务,需要在CI步骤中单独安装XQuartz并启动X11服务,对应命令如下:

brew install gdal
brew install --cask xquartz
sudo launchctl load -w /Library/LaunchDaemons/org.macosforge.xquartz.privileged_startx.plist

该方案经常出现权限、服务启动失败的问题,非必要不推荐使用。

内容的提问来源于stack exchange,提问作者WaterFox

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 06:57:21