Anaconda Python3.6环境安装opencv-python构建wheel失败问题
安装CenterPose环境时opencv-python安装失败
我按照CenterPose仓库的环境配置步骤操作,执行以下命令安装opencv-python时失败:
(CenterPose) mona@ada:/data/CenterPose/data$ pip install opencv-python
错误日志
-- Installing: /tmp/pip-install-wjrf6kvm/opencv-python_e5e6222fa4024d2d8f3e1d1c3bd5fb1f/_skbuild/linux-x86_64-3.6/cmake-install/share/opencv4/lbpcascades/lbpcascade_profileface.xml -- Installing: /tmp/pip-install-wjrf6kvm/opencv-python_e5e6222fa4024d2d8f3e1d1c3bd5fb1f/_skbuild/linux-x86_64-3.6/cmake-install/share/opencv4/lbpcascades/lbpcascade_silverware.xml Copying files from CMake output creating directory _skbuild/linux-x86_64-3.6/cmake-install/cv2 copying _skbuild/linux-x86_64-3.6/cmake-install/python/cv2/python-3/cv2.abi3.so -> _skbuild/linux-x86_64-3.6/cmake-install/cv2/cv2.abi3.so copying _skbuild/linux-x86_64-3.6/cmake-install/python/cv2/__init__.py -> _skbuild/linux-x86_64-3.6/cmake-install/cv2/__init__.py copying _skbuild/linux-x86_64-3.6/cmake-install/python/cv2/load_config_py2.py -> _skbuild/linux-x86_64-3.6/cmake-install/cv2/load_config_py2.py copying _skbuild/linux-x86_64-3.6/cmake-install/python/cv2/load_config_py3.py -> _skbuild/linux-x86_64-3.6/cmake-install/cv2/load_config_py3.py copying _skbuild/linux-x86_64-3.6/cmake-install/python/cv2/config.py -> _skbuild/linux-x86_64-3.6/cmake-install/cv2/config.py copying _skbuild/linux-x86_64-3.6/cmake-install/python/cv2/config-3.py -> _skbuild/linux-x86_64-3.6/cmake-install/cv2/config-3.py Traceback (most recent call last): File "/home/mona/anaconda3/envs/CenterPose/lib/python3.6/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 349, in <module> main() File "/home/mona/anaconda3/envs/CenterPose/lib/python3.6/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 331, in main json_out['return_val'] = hook(**hook_input['kwargs']) File "/home/mona/anaconda3/envs/CenterPose/lib/python3.6/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 249, in build_wheel metadata_directory) File "/tmp/pip-build-env-o9p39xto/overlay/lib/python3.6/site-packages/setuptools/build_meta.py", line 231, in build_wheel wheel_directory, config_settings) File "/tmp/pip-build-env-o9p39xto/overlay/lib/python3.6/site-packages/setuptools/build_meta.py", line 215, in _build_with_temp_dir self.run_setup() File "/tmp/pip-build-env-o9p39xto/overlay/lib/python3.6/site-packages/setuptools/build_meta.py", line 268, in run_setup self).run_setup(setup_script=setup_script) File "/tmp/pip-build-env-o9p39xto/overlay/lib/python3.6/site-packages/setuptools/build_meta.py", line 158, in run_setup exec(compile(code, __file__, 'exec'), locals()) File "setup.py", line 537, in <module> main() File "setup.py", line 310, in main cmake_source_dir=cmake_source_dir, File "/tmp/pip-build-env-o9p39xto/overlay/lib/python3.6/site-packages/skbuild/setuptools_wrap.py", line 683, in setup cmake_install_dir, File "setup.py", line 450, in _classify_installed_files_override raise Exception("Not found: '%s'" % relpath_re) Exception: Not found: 'python/cv2/py.typed' ---------------------------------------- ERROR: Failed building wheel for opencv-python Failed to build opencv-python ERROR: Could not build wheels for opencv-python which use PEP 517 and cannot be installed directly
复现步骤
- 克隆CenterPose仓库
CenterPose_ROOT=/path/to/clone/CenterPose git clone https://github.com/NVlabs/CenterPose.git $CenterPose_ROOT - 创建并激活conda环境
conda create -n CenterPose python=3.6 conda activate CenterPose - 安装依赖文件
pip install -r requirements.txt - 安装eigenpy
conda install -c conda-forge eigenpy
系统信息
执行uname -a输出:
Linux ada 6.5.0-21-generic #21~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Fri Feb 9 13:32:52 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
执行lsb_release -a输出:
LSB Version: core-11.1.0ubuntu4-noarch:security-11.1.0ubuntu4-noarch Distributor ID: Ubuntu Description: Ubuntu 22.04.3 LTS Release: 22.04 Codename: jammy
解决方案
这个报错是因为opencv-python新版本不再兼容Python3.6,py.typed是类型提示文件,新版本opencv-python构建时会依赖该文件,但Python3.6环境下无法正确生成或找到它,可通过以下两种方式解决:
- 指定安装兼容Python3.6的opencv-python版本
执行命令安装适配Python3.6的稳定版本:
pip install opencv-python==4.5.5.62
- 改用conda安装opencv
跳过pip安装,直接从conda-forge源安装opencv,避免版本兼容问题:
conda install -c conda-forge opencv
内容的提问来源于stack exchange,提问作者Mona Jalal
相关产品推荐
相关产品推荐

