我正在尝试运行cv2,当我尝试导入它时,我会得到
ImportError: libGL.so.1: cannot open shared object file: No such file or directory
建议的在线解决方案正在安装
apt install libgl1-mesa-glx
但是它已经安装并且是最新版本。任何帮助都会非常有帮助。在此先感谢
答案 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