尝试导入 cv2(opencv-python) 包时出错

Error trying to import cv2(opencv-python) package

我正在尝试使用 cv2(opencv-python) 包访问我的网络摄像头。

当我尝试导入它时出现此错误:

Traceback (most recent call last):
  File "server.py", line 6, in <module>
    import cv2
  File "/usr/local/lib/python3.8/dist-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

注意:我正尝试在 Linode 服务器上的 putty 上导入此包 - 这可能是有用的信息。

如果有人能向我解释发生了什么并可能解决问题,我将不胜感激!

安装 opencv-python-headless 而不是 opencv-python。服务器(无头)环境没有安装 GUI 包,这就是您看到错误的原因。 opencv-python 依赖于 Qt 而 Qt 又依赖于 X11 相关的库。

另一个替代方法是 运行 sudo apt-get install -y libgl1-mesa-dev,如果您想使用 opencv-python,它将提供缺少的 libGL.so.1libgl1-mesa-dev 包的名称可能会因您的 GNU/Linux 发行版而异。

opencv-python 的完整安装指南可以从软件包文档中找到:https://github.com/skvark/opencv-python#installation-and-usage