我正在尝试使用Python绑定的OpenCV,我使用以下YML文件:
name: opencv-python-sandbox
channels:
- menpo
- conda-forge
- defaults
dependencies:
- jupyter=1.0.0
- jupyterlab=0.34.9
- keras=2.9.0
- matplotlib=3.5.2
- numpy=1.23.1
- opencv-python==4.6.0.66
- pandas=1.4.3
- python=3.8.0
- scikit-learn=1.1.1
- scipy=1.8.1
- tensorboard=2.9.1
- tensorflow=2.9.1
当我下雨时,它抛出了一些错误,并说它无法解决OpenCV和Tensorflow:
(ml-sandbox) joesan@joesan-InfinityBook-S-14-v5:~/Projects/Private/ml-projects/ml-sandbox/opencv-python-sandbox$ conda env create -f environment.yml
Collecting package metadata (repodata.json): done
Solving environment: failed
ResolvePackageNotFound:
- tensorflow=2.9.1
- opencv-python==4.6.0.66
如何解决这个问题?我是否需要将pip添加到我的环境中。Yml,然后通过PIP激活conda环境后手动安装opencv ?
不知道为什么没有其他人回答这个问题,因为这似乎是一个非常常见的问题。然而,我能够通过添加pip来解决这个问题。作为我环境中的一个依赖。使用pip安装OpenCV和其他不能用Conda解析的库
我的环境。Yml看起来像这样:
name: ml-sandbox
channels:
- menpo
- conda-forge
- defaults
dependencies:
- jupyter=1.0.0
- jupyterlab=0.34.9
- keras=2.9.0
- matplotlib=3.5.2
- pandas=1.4.3
- python=3.8.0
- pip=22.1.2
- scikit-learn=1.1.1
- scipy=1.8.1
- tensorboard=2.9.1
- pip:
- numpy==1.23.1
- opencv-contrib-python==4.6.0.66
您已经通过将需求移动到pip部分自己修复了它,这将导致从Pypi安装。我只是想补充解释一下为什么你最初的尝试没有成功,以及如果你想严格坚持使用conda
的建议。请注意,对于tensorflow
和opencv
,conda-forge
上提供的包不是由各自的开发人员维护的,经常导致它们缺少落后的版本。
openCV的python绑定在conda forge
上称为py-opencv
,并且具有不同的版本字符串,因此您需要将py-opencv==4.6.0
放在您的yml
conda-forge的tensorflow仅达到2.8.1。因此,当严格遵守conda时,您需要降级版本
您总是可以通过在您的终端
使用conda search -c <channel> <package-name>
来检查包的可用版本