python-opencv-headless报libGL.so.1缺失错误 如何排查引发问题的包
排查步骤
- 先核实当前环境的opencv包安装情况
运行pip list | grep opencv,查看输出是否同时存在opencv-python和opencv-python-headless两个包。绝大多数此类问题都是其他依赖包自动拉取了普通版opencv,覆盖了你在yml中指定的headless版本导致。 - 追溯普通版opencv的安装来源
如果上一步查到了普通版opencv-python,运行pip show opencv-python,查看输出中的Required-by字段,就能直接看到是哪个依赖包安装了它。如果没有查到普通版,运行ldd 你的conda环境路径/lib/python3.6/site-packages/cv2/cv2.cpython-36m-x86_64-linux-gnu.so,检查cv2动态库的依赖项:正常headless版本不会关联libGL.so.1,如果有这个依赖,说明你安装的headless包本身存在构建异常或者被替换。 - 重点排查高风险依赖
优先检查face-alignment==1.3.4,这个版本的库默认安装逻辑会优先拉取普通版opencv作为依赖,而非headless版本。你可以运行pip install --dry-run face-alignment==1.3.4模拟安装,确认它的依赖拉取逻辑。 - 快速修复方案
不需要排查的话可以直接执行pip uninstall -y opencv-python && pip install --force-reinstall opencv-python-headless==4.5.3.56,强制覆盖回指定的headless版本即可解决报错。
内容的提问来源于stack exchange,提问作者Kazamaa
相关产品推荐
相关产品推荐

