在不联网的服务器上的Docker容器内运行Python程序,Python版本是3.10版本。安装的opencv-python是这一版:opencv-python==4.9.0.80和opencv-contrib-python==4.9.0.80的包
 

docker挂载运行程序出现以下报错:

Traceback (most recent call last):

 File"/service_iqa/service_iqa.py", line 16,in <module>

 from pipeline import get_return,chek_iqa

  File"/service_iqa/pipeline.py", line 1,in <module>

import json.os.cv2

 File "/usr/local/lib/python3.10/site-packages/cv2/__init__.py",line 181.in <module> bootstrap()

   File"/usr/local/lib/python3.10/importlib/__init__.py", line 126,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

首先在Linux Ubuntu系统中查看是否安装了OpenGL库,使用ldconfig检查动态链接库:

ldconfig -p | grep libGL

如果系统上列出所有OpenGL相关的库,是由于opencv相关的python不兼容导致的

卸载相关的python包

opencv-python==4.9.0.80

opencv-contrib-python==4.9.0.80

安装

opencv-contrib-python==4.10.0.84

opencv-python==4.10.0.84

opencv-python-headless==4.10.0.84

完成安装后,重启python环境再运行代码即可。

如果没有安装,在Linux Ubuntu系统中,安装OpenGL库

sudo apt-get install libgll-mesa-glx

这个命令将安装OpenGL库及其依赖项。

如果你使用的是其他Linux发行版,可以使用相应的包管理器来安装OpenGL库。

更多推荐