通过Conda环境YML文件安装OpenCV遇包解析失败问题求助
解决conda环境创建时找不到TensorFlow和OpenCV包的问题
问题原因
你遇到的ResolvePackageNotFound错误,本质是指定的包名或版本在当前配置的conda频道里找不到:
opencv-python是PyPI(pip)上的包名,conda官方频道里对应的包名为opencv- TensorFlow 2.9.1与Python 3.8的兼容性在部分conda频道中可能存在缺失,或者频道优先级导致无法检索到
解决方案
方案一:调整conda包名与频道优先级
修改environment.yml文件,将conda兼容的包名替换,并把包资源更丰富的conda-forge频道移到最前面:
name: opencv-python-sandbox channels: - conda-forge - menpo - defaults dependencies: - python=3.8.0 - jupyter=1.0.0 - jupyterlab=0.34.9 - keras=2.9.0 - matplotlib=3.5.2 - numpy=1.23.1 - opencv=4.6.0 - pandas=1.4.3 - scikit-learn=1.1.1 - scipy=1.8.1 - tensorboard=2.9.1 - tensorflow=2.9.1
修改后执行以下命令重新创建环境:
conda env remove -n opencv-python-sandbox # 先删除失败创建的环境(如果存在) conda env create -f environment.yml
方案二:通过pip安装缺失的包
如果方案一仍无法解决,可在environment.yml中添加pip依赖,让conda先安装基础包,再通过pip安装TensorFlow和OpenCV:
name: opencv-python-sandbox channels: - conda-forge - menpo - defaults dependencies: - python=3.8.0 - jupyter=1.0.0 - jupyterlab=0.34.9 - keras=2.9.0 - matplotlib=3.5.2 - numpy=1.23.1 - pandas=1.4.3 - scikit-learn=1.1.1 - scipy=1.8.1 - pip # 确保pip被安装 - pip: - opencv-python==4.6.0.66 - tensorflow==2.9.1 - tensorboard==2.9.1
同样执行删除旧环境后重新创建的命令即可。
内容的提问来源于stack exchange,提问作者joesan
相关产品推荐
相关产品推荐

