import cv2时动态链接报错
File "/opt/conda/lib/python3.10/site-packages/cv2/__init__.py", line 181, in <module>
bootstrap()
File "/opt/conda/lib/python3.10/site-packages/cv2/__init__.py", line 153, in bootstrap
native_module = importlib.import_module("cv2")
File "/opt/conda/lib/python3.10/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
ImportError: libGL.so.1: cannot open shared object file: No such file or directory
事实证明,一切牛鬼蛇神来自环境的错误配置
opencv
有四种不同的软件包:
opencv-python
: 主模块包opencv-contrib-python
: 完整包(包含主模块和contrib/extra模块)opencv-python-headless
无头主模块包 不带GUIopencv-contrib-python-headless
无头完整包
根据需求安装这些模块
另外还会有其他bug, 例如AttributeError: partially initialized module 'cv2' has no attribute '_registerMatType' (most likely due to a circular import)
, 这时候安装< 4.3
的版本能解决问题
安装完整包opencv-contrib-python-headless<4.3
一键解君愁,但是最重要的是在安装前要卸载干净所有的opencv包 ! ! !
pip install "opencv-contrib-python-headless<4.3" -i https://pypi.tuna.tsinghua.edu.cn/simple
事实证明只需要安装其中一个包足矣