在 docker 中 import cv2 出现以下两类报错。
ImportError: libGL.so.1: cannot open shared object file: No such file or directory
ImportError: libgthread-2.0.so.0: cannot open shared object file: No such file or directory
这类错误发生是因为OpenCV(cv2)依赖于OpenGL库来进行图形渲染,特别是在使用图形用户界面(GUI)功能,如显示图片窗口时。
当在Docker容器中尝试导入或使用OpenCV时,如果容器的基础镜像中没有安装OpenGL相关的库,就会出现。
解决方案1:
针对第一个报错(libGL.so.1) 采用
apt install libgl1-mesa-glx
针对第二个报错 (libgthread-2.0.so.0) 采用
sudo apt-get install libglib2.0-0
解决方案2:
针对第一个报错(libGL.so.1) 采用
pip3 install opencv-python-headless
参考博客:
【1】https://stackoverflow.com/questions/55313610/importerror-libgl-so-1-cannot-open-shared-object-file-no-such-file-or-directo
【2】https://askubuntu.com/questions/1060903/importerror-libgthread-2-0-so-0-cannot-open-shared-object-file-no-such-file-o