ImportError:libGL.so.1:无法打开共享库文件:没有这样的文件或目录

时间:2019-03-23 12:14:11

标签: python ubuntu-14.04

我正在尝试运行cv2,当我尝试导入它时,我会得到

ImportError: libGL.so.1: cannot open shared object file: No such file or directory

建议的在线解决方案正在安装

apt install libgl1-mesa-glx

但是它已经安装并且是最新版本。任何帮助都会非常有帮助。在此先感谢

8 个答案:

答案 0 :(得分:52)

RUN apt-get update ##[edited]
RUN apt-get install ffmpeg libsm6 libxext6  -y

将这些行添加到您的Dockerfile

答案 1 :(得分:13)

在我看来,这是一个更好的解决方案。包 python3-opencv 包含 OpenCV 的所有系统依赖项。

RUN apt-get update && apt-get install -y python3-opencv
RUN pip install opencv-python

答案 2 :(得分:3)

把它放在Dockerfile

RUN apt-get update
RUN apt install -y libgl1-mesa-glx

行前

COPY requirements.txt requirements.txt

例如

......

RUN apt-get update
RUN apt install -y libgl1-mesa-glx

COPY requirements.txt requirements.txt

......

答案 3 :(得分:1)

请运行以下命令

sudo apt update


sudo apt install libgl1-mesa-glx

链接 - https://github.com/conda-forge/pygridgen-feedstock/issues/10

答案 4 :(得分:0)

这是您需要的解决方案:

pip install -U opencv-python
apt-get upgrade
apt update && apt install -y libsm6 libxext6 ffmpeg libfontconfig1 libxrender1 libgl1-mesa-glx

答案 5 :(得分:0)

在缺少各种图形库的非 gui 服务器上使用 pip3 install opencv 后,在 centos 8 上遇到了同样的问题。

dnf install opencv

引入所有需要的依赖项。

答案 6 :(得分:0)

对于树莓派,把这个,为我工作:

sudo apt-get install ffmpeg libsm6 libxext6  -y

答案 7 :(得分:0)

即使上述解决方案有效。但它们的包装尺寸相当大。 libGL.so.1 由包 libgl1 提供。所以下面的代码就足够了。

apt-get update && apt-get install libgl1