Linux Mint Anaconda Python3.8编译opencv-contrib-python报FileNotFoundError
报错原因
你遇到的FileNotFoundError: [Errno 2] No such file or directory: 'scripts/__init__.py'不属于系统依赖缺失,是opencv-contrib-python高版本的源码打包缺陷,结合Anaconda环境下PEP 517构建流程适配问题触发的错误。
解决方案
按以下顺序操作即可完成编译安装:
- 首先安装Linux Mint系统层面的编译依赖:
sudo apt update && sudo apt install -y build-essential cmake ninja-build git libgtk-3-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev libjpeg-dev libpng-dev libtiff-dev gfortran libopenexr-dev libatlas-base-dev python3-dev libtbb2 libtbb-dev libdc1394-22-dev
- 切换到目标Anaconda环境,先安装Python侧的构建依赖:
pip install scikit-build cmake numpy
- 安装指定版本的opencv-contrib-python,避开存在打包缺陷的版本,同时禁用不兼容的构建规则:
CMAKE_ARGS="-DWITH_GTK=ON" pip install --no-binary opencv-contrib-python opencv-contrib-python==4.5.5.62 --no-use-pep517 --no-build-isolation
上述命令中添加的CMAKE_ARGS="-DWITH_GTK=ON"参数会强制编译时使用GTK后端,从根源解决你提到的预编译包线程相关报错问题
验证安装
安装完成后执行以下命令验证:
python -c "import cv2; print(cv2.__version__)"
如果正常输出版本号即为安装成功。
内容的提问来源于stack exchange,提问作者Artem Lebedev
相关产品推荐
相关产品推荐

