Rya*_*an 112 python ubuntu-14.04
我正在尝试运行 cv2,当我尝试导入它时,我得到了
ImportError: libGL.so.1: cannot open shared object file: No such file or directory
在线建议的解决方案是安装
apt install libgl1-mesa-glx
但这已经安装并且是最新版本。任何帮助都会非常有帮助。提前致谢。
Tus*_*lhe 228
RUN apt-get update ##[edited]
RUN apt-get install ffmpeg libsm6 libxext6 -y
Run Code Online (Sandbox Code Playgroud)
将这些行添加到您的 Dockerfile
小智 224
尽管上述解决方案有效。但他们的包装尺寸相当大。
libGL.so.1由包提供libgl1。所以下面的代码就足够了。
apt-get update && apt-get install libgl1
Run Code Online (Sandbox Code Playgroud)
Rec*_*nic 125
尝试安装opencv-python-headlesspython 依赖项而不是opencv-python. 其中包括一个没有外部依赖项(numpy 除外)的预编译二进制轮,适用于 Docker 等无头环境。与使用python3-opencvDebian 软件包(及其所有依赖项)相比,这在我的 docker 映像中节省了近 700mb。
包文档讨论了这个以及相关的(更广泛的)opencv-contrib-python-headlesspypi 包。
ImportError重现问题中的示例# docker run -it python:3.9-slim bash -c "pip -q install opencv-python; python -c 'import cv2'"
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/usr/local/lib/python3.9/site-packages/cv2/__init__.py", line 5, in <module>
from .cv2 import *
ImportError: libGL.so.1: cannot open shared object file: No such file or directory
# docker run -it python:3.9-slim bash -c "pip -q install opencv-python-headless; python -c 'import cv2'"
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
Run Code Online (Sandbox Code Playgroud)
sou*_*g78 41
对我来说,唯一有效的 WA 如下:
# These are for libGL.so issues
# RUN apt-get update
# RUN apt install libgl1-mesa-glx
# RUN apt-get install -y python3-opencv
# RUN pip3 install opencv-python
RUN pip3 install opencv-python-headless==4.5.3.56
Run Code Online (Sandbox Code Playgroud)
Mat*_*ith 39
如果您使用的是 CentOS、RHEL、Fedora 或其他使用 的 Linux 发行版yum,您将需要:
sudo yum install mesa-libGL -y
Run Code Online (Sandbox Code Playgroud)
在 Arch 中,这映射到 extra/mesa:
sudo pacman -S mesa-libgl
Run Code Online (Sandbox Code Playgroud)
And*_*udy 19
在我看来,这是一个更好的解决方案。包python3-opencv包含 OpenCV 的所有系统依赖项。
RUN apt-get update && apt-get install -y python3-opencv
RUN pip install opencv-python
Run Code Online (Sandbox Code Playgroud)
Max*_*axi 19
就我而言,执行以下操作就足够了,与上述解决方案相比,这也节省了空间
RUN apt-get update && apt-get install -y --no-install-recommends \
libgl1 \
libglib2.0-0 \
Run Code Online (Sandbox Code Playgroud)
把这个放在 Dockerfile
RUN apt-get update
RUN apt install -y libgl1-mesa-glx
Run Code Online (Sandbox Code Playgroud)
行前
COPY requirements.txt requirements.txt
Run Code Online (Sandbox Code Playgroud)
例如
......
RUN apt-get update
RUN apt install -y libgl1-mesa-glx
COPY requirements.txt requirements.txt
......
Run Code Online (Sandbox Code Playgroud)
我收到错误:
ImportError: libEGL.so.1: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)
这与以下内容非常相似:
ImportError: libGL.so.1: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)
基本上libGL变成libEGL(额外E)
在这种情况下,您必须安装libegl1而不是libgl1:
ImportError: libEGL.so.1: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)
小智 5
这是您需要的解决方案:
pip install -U opencv-python
apt update && apt install -y libsm6 libxext6 ffmpeg libfontconfig1 libxrender1 libgl1-mesa-glx
Run Code Online (Sandbox Code Playgroud)
小智 5
我在 docker 容器中使用 cv2 时遇到了这个问题。我通过以下方式修复了它:
pip install opencv-contrib-python
Run Code Online (Sandbox Code Playgroud)
安装opencv-contrib-python而不是opencv-python。
| 归档时间: |
|
| 查看次数: |
92940 次 |
| 最近记录: |