Search code examples
pythoncondaopencvvirtual-environmentmamba

Mamba can't create env giving 'nothing provides' but pip sees such version of opencv-python


I need to create env with

mamba create --name tf1_12__HDR Tensorflow==1.12.0 Keras==2.2.4 opencv-python==3.4.4.19 anaconda

It provides

mamba (0.7.3) supported by @QuantStack

...

Looking for: ['tensorflow==1.12.0', 'keras==2.2.4', 'opencv-python==3.4.4.19', 'anaconda']

...

Problem: nothing provides requested opencv-python 3.4.4.19

I am calling

pip install opencv-python==

ERROR: Could not find a version that satisfies the requirement opencv-python== (from versions: 3.4.2.17, 3.4.3.18, 3.4.4.19, 3.4.5.20, 3.4.6.27, 3.4.7.28, 3.4.8.29, 3.4.9.31, 3.4.9.33, 3.4.10.35, 3.4.10.37, 3.4.11.39, 3.4.11.41, 3.4.11.43, 3.4.11.45, 3.4.13.47, 3.4.14.51, 3.4.14.53, 3.4.15.55, 3.4.16.57, 4.0.0.21, 4.0.1.23, 4.0.1.24, 4.1.0.25, 4.1.1.26, 4.1.2.30, 4.2.0.32, 4.2.0.34, 4.3.0.36, 4.3.0.38, 4.4.0.40, 4.4.0.42, 4.4.0.44, 4.4.0.46, 4.5.1.48, 4.5.2.52, 4.5.2.54, 4.5.3.56, 4.5.4.58)
ERROR: No matching distribution found for opencv-python==

So such version exists.

I know a cheat to overcome issue using steps:

1 Create env without opencv-python

2 Install opencv-python with pip

but it can lead to conflicts inside enviroment and potentially break it.

Can you please provide a "clean" solution and/or describe the reason of this unexpected output?


Solution

  • PyPI and Anaconda Cloud packages don't necessarily go by the same names. The opencv package from Conda Forge will include the OpenCV libs (libopencv) and the Python interface (py-opencv). That is, install opencv with the version you want.

    BTW, as mentioned in the comments == is Pip syntax, Conda/Mamba use single =.