'conda refuses to install package while all dependencies seems to be already satisfied

I'm trying to install httpcore v0.14.7 inside miniconda 3.8 . httpcore v0.14.7 is only available on conda-forge, rather than the anaconda main repo. Unfortunately, conda again fell into the painful "flexible solve" tries. So I decide to inspect the dependency myself. I ran conda search --info httpcore=0.14.7 and got something like this:

...
dependencies:
  - anyio 3.*
  - certifi
  - h11 >=0.11,<0.13
  - h2 >=3,<5
  - python >=3.6
  - sniffio 1.*

I've checked every package in the depencency list, and have manually installed the corresponding version. However conda install still refuse to install httpcore. So I have no idea now where to go next.

I've attached the output of conda install, conda list and conda search below, with a snippet to collapse long text.

Output of `conda install httpcore=0.14.7`
<pre>
........
Specifications:
 
  - anaconda/pkgs/main/noarch::packaging==21.3=pyhd3eb1b0_0 -> python[version='2.7.*|3.5.*|3.6.*|>=2.7,<2.8.0a0|>=3.6,<3.7.0a0|>=3.7,<3.8.0a0|>=3.5,<3.6.0a0|3.4.*']
  - anaconda/pkgs/main/win-64::argon2-cffi-bindings==21.2.0=py38h2bbff1b_0 -> python[version='2.7.*|3.5.*|3.6.*|3.6.12|3.6.12|3.7.10|3.7.10|3.7.12|3.8.12|3.9.10|>=2.7,<2.8.0a0|>=3.10,<3.11.0a0|>=3.7,<3.8.0a0|>=3.9,<3.10.0a0|>=3.6,<3.7.0a0|>=3.5,<3.6.0a0|3.7.9|3.6.9|3.6.9|3.6.9|3.6.9|3.4.*',build='2_73_pypy|3_73_pypy|4_73_pypy|5_73_pypy|1_73_pypy|0_73_pypy|0_73_pypy|5_73_pypy|1_73_pypy|0_73_pypy']
  - anaconda/pkgs/main/win-64::bottleneck==1.3.4=py38h080aedc_0 -> python[version='>=2.7,<2.8.0a0|>=3.10,<3.11.0a0|>=3.7,<3.8.0a0|>=3.9,<3.10.0a0|>=3.6,<3.7.0a0']
  - anaconda/pkgs/main/win-64::brotlipy==0.7.0=py38h2bbff1b_1003 -> python[version='2.7.*|3.5.*|3.6.*|3.6.12|3.6.12|3.7.10|3.7.10|3.7.12|3.8.12|3.9.10|>=2.7,<2.8.0a0|>=3.10,<3.11.0a0|>=3.7,<3.8.0a0|>=3.9,<3.10.0a0|>=3.6,<3.7.0a0|>=3.5,<3.6.0a0|3.7.9|3.6.9|3.6.9|3.6.9|3.6.9|3.4.*',build='2_73_pypy|3_73_pypy|4_73_pypy|5_73_pypy|1_73_pypy|0_73_pypy|0_73_pypy|5_73_pypy|1_73_pypy|0_73_pypy']
  - anaconda/pkgs/main/win-64::click==8.0.4=py38haa95532_0 -> python[version='2.7.*|3.5.*|3.6.*|>=2.7,<2.8.0a0|>=3.7,<3.8.0a0|>=3.6,<3.7.0a0|>=3.5,<3.6.0a0|3.4.*']
  - anaconda/pkgs/main/win-64::cryptography==36.0.0=py38h21b164f_0 -> python[version='3.6.12|3.6.12|3.7.10|3.7.10|3.7.12|3.8.12|3.9.10|>=2.7,<2.8.0a0|>=3.10,<3.11.0a0|>=3.7,<3.8.0a0|>=3.9,<3.10.0a0|>=3.6,<3.7.0a0|3.7.9|3.6.9|3.6.9|3.6.9|3.6.9',build='2_73_pypy|3_73_pypy|4_73_pypy|5_73_pypy|1_73_pypy|0_73_pypy|0_73_pypy|5_73_pypy|1_73_pypy|0_73_pypy']
  - anaconda/pkgs/main/win-64::h5py==2.10.0=py38h5e291fa_0 -> python[version='2.7.*|3.4.*|3.5.*|3.6.*|>=2.7,<2.8.0a0|>=3.10,<3.11.0a0|>=3.7,<3.8.0a0|>=3.9,<3.10.0a0|>=3.6,<3.7.0a0|>=3.5,<3.6.0a0']
  - anaconda/pkgs/main/win-64::matplotlib==3.5.1=py38haa95532_1 -> python[version='2.7.*|3.5.*|3.6.*|>=2.7,<2.8.0a0|>=3.10,<3.11.0a0|>=3.7,<3.8.0a0|>=3.9,<3.10.0a0|>=3.6,<3.7.0a0|>=3.5,<3.6.0a0|3.4.*']
  - anaconda/pkgs/main/win-64::menuinst==1.4.18=py38h59b6b97_0 -> python[version='2.7.*|3.5.*|3.6.*|>=2.7,<2.8.0a0|>=3.10,<3.11.0a0|>=3.9,<3.10.0a0|>=3.7,<3.8.0a0|>=3.6,<3.7.0a0|>=3.5,<3.6.0a0']
  - anaconda/pkgs/main/win-64::mkl-service==2.4.0=py38h2bbff1b_0 -> python[version='2.7.*|3.5.*|3.6.*|>=2.7,<2.8.0a0|>=3.6,<3.7.0a0|>=3.7,<3.8.0a0|>=3.9,<3.10.0a0|>=3.5,<3.6.0a0|3.4.*']
  - anaconda/pkgs/main/win-64::mkl_fft==1.3.1=py38h277e83a_0 -> python[version='>=2.7,<2.8.0a0|>=3.10,<3.11.0a0|>=3.7,<3.8.0a0|>=3.6,<3.7.0a0|>=3.9,<3.10.0a0']
  - anaconda/pkgs/main/win-64::numba==0.55.1=py38hf11a4ad_0 -> python[version='2.7.*|3.5.*|3.6.*|>=2.7,<2.8.0a0|>=3.10,<3.11.0a0|>=3.7,<3.8.0a0|>=3.9,<3.10.0a0|>=3.6,<3.7.0a0|>=3.5,<3.6.0a0|3.4.*']
  - anaconda/pkgs/main/win-64::numpy-base==1.21.5=py38hca35cd5_2 -> python[version='>=2.7,<2.8.0a0|>=3.10,<3.11.0a0|>=3.7,<3.8.0a0|>=3.6,<3.7.0a0|>=3.9,<3.10.0a0']
  - anaconda/pkgs/main/win-64::numpy==1.21.5=py38h7a0a035_2 -> python[version='2.7.*|3.5.*|3.6.*|>=2.7,<2.8.0a0|>=3.10,<3.11.0a0|>=3.7,<3.8.0a0|>=3.6,<3.7.0a0|>=3.9,<3.10.0a0|>=3.5,<3.6.0a0']
  - anaconda/pkgs/main/win-64::py-opencv==4.0.1=py38he44ac1e_0 -> python[version='3.5.*|3.6.*|>=2.7,<2.8.0a0|>=3.10,<3.11.0a0|>=3.7,<3.8.0a0|>=3.9,<3.10.0a0|>=3.6,<3.7.0a0|>=3.5,<3.6.0a0']
  - anaconda/pkgs/main/win-64::pyqt==5.9.2=py38hd77b12b_6 -> python[version='>=2.7,<2.8.0a0|>=3.10,<3.11.0a0|>=3.7,<3.8.0a0|>=3.9,<3.10.0a0|>=3.6,<3.7.0a0']
  - anaconda/pkgs/main/win-64::pysocks==1.7.1=py38haa95532_0 -> python[version='2.7.*|3.5.*|3.6.*|>=2.7,<2.8.0a0|>=3.10,<3.11.0a0|>=3.6,<3.7.0a0|>=3.7,<3.8.0a0|>=3.9,<3.10.0a0|>=3.5,<3.6.0a0']
  - anaconda/pkgs/main/win-64::setuptools==61.2.0=py38haa95532_0 -> python[version='2.7.*|3.5.*|3.6.*|>=2.7,<2.8.0a0|>=3.10,<3.11.0a0|>=3.7,<3.8.0a0|>=3.9,<3.10.0a0|>=3.6,<3.7.0a0|>=3.5,<3.6.0a0|3.4.*']
  - anaconda/pkgs/main/win-64::terminado==0.13.1=py38haa95532_0 -> python[version='2.7.*|3.5.*|3.6.*|>=2.7,<2.8.0a0|>=3.10,<3.11.0a0|>=3.7,<3.8.0a0|>=3.9,<3.10.0a0|>=3.6,<3.7.0a0|>=3.5,<3.6.0a0|3.4.*']
  - anaconda/pkgs/main/win-64::tqdm==4.64.0=py38haa95532_0 -> python[version='2.7.*|3.5.*|3.6.*|>=2.7,<2.8.0a0|>=3.7,<3.8.0a0|>=3.6,<3.7.0a0|>=3.5,<3.6.0a0|3.4.*']
  - anaconda/pkgs/main/win-64::websocket-client==0.58.0=py38haa95532_4 -> python[version='2.7.*|3.5.*|3.6.*|>=2.7,<2.8.0a0|>=3.6,<3.7.0a0|>=3.7,<3.8.0a0|>=3.9,<3.10.0a0|>=3.5,<3.6.0a0|3.4.*']
  - anaconda/pkgs/main/win-64::zstandard==0.15.2=py38h2bbff1b_0 -> python[version='2.7.*|3.5.*|3.6.*|3.6.12|3.6.12|3.7.10|3.7.10|3.7.12|3.8.12|3.9.10|>=2.7,<2.8.0a0|>=3.10,<3.11.0a0|>=3.7,<3.8.0a0|>=3.9,<3.10.0a0|>=3.6,<3.7.0a0|>=3.5,<3.6.0a0|3.7.9|3.6.9|3.6.9|3.6.9|3.6.9',build='2_73_pypy|3_73_pypy|4_73_pypy|5_73_pypy|1_73_pypy|0_73_pypy|0_73_pypy|5_73_pypy|1_73_pypy|0_73_pypy']
 
Your python: anaconda/pkgs/main/win-64::python==3.8.13=h6244533_0
 
If python is on the left-most side of the chain, that's the version you've asked for.
When python appears to the right, that indicates that the thing on the left is somehow
not available for the python version you are constrained to. Note that conda will not
change your python version to a different minor version unless you explicitly specify
that.
 
The following specifications were found to be incompatible with a past
explicit spec that is not an explicit spec in this operation (certifi):
 
  - httpcore=0.14.7 -> anyio=3 -> async_generator
  - httpcore=0.14.7 -> anyio=3 -> idna[version='>=2.8']
  - httpcore=0.14.7 -> anyio=3 -> python_abi[version='2.7.*|3.10.*|3.7.*|3.9.*|3.8.*|3.6.*|3.9|3.8|3.7',build='*_cp27m|*_pypy37_pp73|*_pypy39_pp73|*_cp36m|*_cp38|*_cp37m|*_cp310|*_cp39|*_pypy38_pp73']
  - httpcore=0.14.7 -> anyio=3 -> sniffio[version='>=1.1']
  - httpcore=0.14.7 -> anyio=3 -> typing_extensions
  - httpcore=0.14.7 -> certifi
  - httpcore=0.14.7 -> h11[version='>=0.11,<0.13']
  - httpcore=0.14.7 -> h2[version='>=3,<5']
  - httpcore=0.14.7 -> python[version='>=3.6'] -> openssl[version='>=1.1.1a,<1.1.2a|>=1.1.1b,<1.1.2a|>=1.1.1c,<1.1.2a|>=1.1.1d,<1.1.2a|>=1.1.1e,<1.1.2a|>=1.1.1f,<1.1.2a|>=1.1.1g,<1.1.2a|>=1.1.1h,<1.1.2a|>=1.1.1i,<1.1.2a|>=1.1.1j,<1.1.2a|>=1.1.1k,<1.1.2a|>=1.1.1l,<1.1.2a|>=1.1.1n,<1.1.2a|>=3.0.2,<4.0a0|>=3.0.0,<4.0a0']
  - httpcore=0.14.7 -> python[version='>=3.6'] -> pip
  - httpcore=0.14.7 -> python[version='>=3.6'] -> sqlite[version='>=3.25.3,<4.0a0|>=3.26.0,<4.0a0|>=3.27.2,<4.0a0|>=3.28.0,<4.0a0|>=3.29.0,<4.0a0|>=3.30.0,<4.0a0|>=3.30.1,<4.0a0|>=3.31.1,<4.0a0|>=3.32.3,<4.0a0|>=3.33.0,<4.0a0|>=3.35.4,<4.0a0|>=3.36.0,<4.0a0|>=3.38.0,<4.0a0|>=3.38.2,<4.0a0|>=3.35.1,<4.0a0|>=3.37.1,<4.0a0|>=3.37.0,<4.0a0|>=3.35.5,<4.0a0|>=3.34.0,<4.0a0']
  - httpcore=0.14.7 -> python[version='>=3.6'] -> tk[version='>=8.6.11,<8.7.0a0|>=8.6.12,<8.7.0a0']
  - httpcore=0.14.7 -> python[version='>=3.6'] -> vc[version='14.*|>=14.1,<15.0a0|>=14.1,<15|>=14,<15.0a0']
  - httpcore=0.14.7 -> python[version='>=3.6'] -> vs2015_runtime[version='>=14.16.27012|>=14.16.27012,<15.0a0|>=14.16.27033']
  - httpcore=0.14.7 -> python[version='>=3.6'] -> xz[version='>=5.2.5,<5.3.0a0|>=5.2.5,<6.0a0']
  - httpcore=0.14.7 -> python[version='>=3.6'] -> zlib[version='>=1.2.11,<1.3.0a0']
  - httpcore=0.14.7 -> sniffio=1
........
</pre>

Output of `conda list`, with non-relating packages removed.
<pre>
# Name                    Version                   Build  Channel
anyio                     3.5.0            py38haa95532_0    defaults
async_generator           1.10               pyhd3eb1b0_0    defaults
certifi                   2021.10.8        py38haa95532_2    defaults
h11                       0.12.0             pyhd3eb1b0_0    defaults
h2                        4.0.0            py38haa95532_3    defaults
idna                      3.3                pyhd3eb1b0_0    defaults
openssl                   1.1.1n               h2bbff1b_0    defaults
pip                       21.2.2           py38haa95532_0    defaults
pip-tools                 6.6.0              pyhd8ed1ab_0    conda-forge
python                    3.8.13               h6244533_0    defaults
python_abi                3.8                      2_cp38    conda-forge
sniffio                   1.2.0            py38haa95532_1    defaults
sqlite                    3.38.3               h2bbff1b_0    defaults
typing-extensions         4.1.1                hd3eb1b0_0    defaults
typing_extensions         4.1.1              pyh06a4308_0    defaults
tk                        8.6.11               h2bbff1b_0    defaults
vc                        14.2                 h21ff451_1    defaults
vs2015_runtime            14.27.29016          h5e58377_2    defaults
xz                        5.2.5                h8cc25b3_1    defaults
zlib                      1.2.12               h8cc25b3_2    defaults
</pre>

Output of `conda search --info httpcore=0.14.7`
<pre>
httpcore 0.14.7 pyhd8ed1ab_1
----------------------------
file name   : httpcore-0.14.7-pyhd8ed1ab_1.tar.bz2
name        : httpcore
version     : 0.14.7
build       : pyhd8ed1ab_1
build number: 1
size        : 38 KB
license     : BSD-3-Clause
subdir      : noarch
md5         : fef30712c30973b45de04f61ca1693b0
timestamp   : 2022-05-09 23:11:34 UTC
dependencies:
  - anyio 3.*
  - certifi
  - h11 >=0.11,<0.13
  - h2 >=3,<5
  - python >=3.6
  - sniffio 1.*
</pre>


Solution 1:[1]

Thanks to @merv , after switching to mamba it pointed out the reason of not finding a solution clearly (and much much faster). It's cause I've set channel_priority to strict. After setting it to flexible (the default one) mamba seems to work flawlessly. It does seem that conda works now, and it should work. But I'm not very sure, for I didn't revert my whole env to the exact same one as before running mamba install httpcore=0.14.7.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Lingo