iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >ImportError: libGL.so.1: cannot open shared object file: No such file or dir...解决Python import cv2报错
  • 321
分享到

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

pythonopencv开发语言 2023-09-06 16:09:43 321人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

项目场景及问题描述 在不联网的服务器上的Docker容器内运行python程序,Python版本是3.8版本。安装的OpenCV-python是这一版: opencv_python-4.7.0.68-

项目场景及问题描述

在不联网的服务器上的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 cv2Traceback (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

原因分析:

出现这种情况的原因主要是因为使用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

方案三:

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

RUN apt-get updateRUN apt-get install FFmpeg libsm6 libxext6  -y

可确保更新软件包并安装运行所需的其他软件包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

来源地址:https://blog.csdn.net/qq_39691492/article/details/130688233

--结束END--

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

本文链接: https://www.lsjlt.com/news/397269.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作