环境里出现问题 ImportError: libGL.so.1或libSM.so.6

  若代码中有

import cv2

  在docker种,由于docker中基础依赖不完整,可能报错  ImportError: libGL.so.1: cannot open shared object file: No such file or directory

 

有2种解决途径:

1. 执行下面命令即可

apt update
apt install libgl1-mesa-glx

 

2. 对于没有apt命令权限的情况,—— 参考

  这条命令安装的opencv在本地的环境中可以使用,但无法在docker里使用。

pip install opencv-python      # 这是原来安装opencv-python的命令

 

  需要改用下面的命令。

pip install opencv-python==3.4.2.17         # 安装版本不要太高
pip install opencv-python-headless==3.4.2.17  # 安装这个版本的opencv(亲测可用),4.1.2.30版本也可
# 或 仅使用headless版
pip install opencv-python-headless=4.1.2.30

** 此方法对libSM.so.6缺失等cv2的问题也有效

** 可以查看 anaconda3/envs/env_name/lib/python3.7/site-packages/cv2/ 目录的内容,

  ·如果有 cv2, data, gapi, mat_wrapper, utils等目录存在,一般就不会有问题;

  ·若只有data等一两个目录,在docker内就可能报错ImportError。  ——3.4.2.17版本的不会

posted @ 2022-03-15 16:17  谷小雨  阅读(1338)  评论(0)    收藏  举报