我试图运行cv2,但当我试图导入它时,我得到以下错误:

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

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

apt install libgl1-mesa-glx

但这是已经安装的最新版本。

注:我实际上是在Docker上运行这个,我无法检查OpenCV版本。我尝试导入matplotlib,导入正常。


当前回答

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

apt-get update && apt-get install libgl1

其他回答

如果使用docker或服务器环境,请使用opencv-python-headless。

当我试图在GCP Appengine Flex服务器环境中使用OpenCV时,我得到了同样的错误。将requirements.txt中的“opencv-python”替换为“opencv-python-headless”解决了这个问题。

OpenCV文档讨论了桌面和服务器(无头)环境的不同包。

对我来说,这个问题与代理设置有关。对于pypi,我使用nexus镜像到pypi,对于opencv什么都不工作。直到我连接到另一个网络。

下面是你需要的解决方案:

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

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

apt-get update && apt-get install libgl1