您现在的位置是:首页 > 技术教程 正文

ImportError: libGL.so.1: cannot open shared object file: No such file or dir...解决Python import cv2报错

admin 阅读: 2024-03-23
后台-插件-广告管理-内容页头部广告(手机)

项目场景及问题描述

在不联网的服务器上的Docker容器内运行Python程序,Python版本是3.8版本。安装的opencv-python是这一版:
opencv_python-4.7.0.68-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
程序部分 import cv2 出现报错:ImportError: libGL.so.1: cannot open shared object file: No such file or directory

具体如下:

>>> import cv2 Traceback (most recent call last): File "", line 1, in <module> File "/usr/local/lib/python3.8/dist-packages/cv2/__init__.py", line 181, in <module> bootstrap() File "/usr/local/lib/python3.8/dist-packages/cv2/__init__.py", line 153, in bootstrap native_module = importlib.import_module("cv2") File "/usr/lib/python3.8/importlib/__init__.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) ImportError: libGL.so.1: cannot open shared object file: No such file or directory
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

原因分析:

出现这种情况的原因主要是因为使用Docker构建应用时缺少cv2的依赖。可以通过安装所需的附加依赖项来解决此错误。


解决方案:

方案一:

通过安装 opencv-python-headless ,它会安装所有相关的依赖项,解决这种报错。opencv-python-headless 包含没有外部依赖项的预编译二进制轮(除了numpy),并且适用于 Docker 等无头环境。以我使用的版本为例,
opencv-python安装的版本如下:
opencv_python-4.7.0.68-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
因此安装了对应版本的 opencv-python-headless:
opencv_python_headless-4.7.0.68-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
解决了报错问题。该方案对不联网环境比较友好,只需要有对应安装包即可。

方案二:

安装依赖项 libgl1 。
用如下指令:

apt-get update && apt-get install libgl1
  • 1

方案三:

安装cv2依赖。
只需将以下代码添加到您的行DockerFile中即可解决此问题。

RUN apt-get update RUN apt-get install ffmpeg libsm6 libxext6 -y
  • 1
  • 2

可确保更新软件包并安装运行所需的其他软件包cv2。

方案四:

安装 mesa-libGL.x86_64 。
yum install mesa-libGL.x86_64


参考:

Importerror: libgl.so.1: cannot open shared object file: no such file or directory
ImportError: libGL.so.1: cannot open shared object file

标签:
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

在线投稿:投稿 站长QQ:1888636

后台-插件-广告管理-内容页尾部广告(手机)
关注我们

扫一扫关注我们,了解最新精彩内容

搜索