python packaging fails with strange errors if dependencies are not available in the pipy repository

I tried building locally a python package for dnue-uggrid.

The current build infrastructure tries to install the dependencies. The problem is now that dune-uggrid is version 2.9 and requires dune-common version 2.9. My initial idea was to install dune-common 2.9 into my local venv using pip install ./dune-common which worked perfectly:

> pip list
Package            Version
------------------ ---------------
certifi            2022.6.15
charset-normalizer 2.0.12
cmake              3.22.5
distro             1.7.0
dune-common        2.9.dev20220622
idna               3.3
Jinja2             3.1.2
MarkupSafe         2.1.1
mpi4py             3.1.3
ninja              1.10.2.3
numpy              1.22.4
packaging          21.3
pip                22.1.1
portalocker        2.4.0
pyparsing          3.0.9
requests           2.28.0
scikit-build       0.15.0
setuptools         59.6.0
urllib3            1.26.9
wheel              0.37.1

... but still pip install ./dune-uggrid tries to install dune-common and finds only the 2.8 wheel:

> pip -v install dnue-uggrid/
Using pip 22.1.1 from /home/christi/Uni/Dune/foobar/lib/python3.10/site-packages/pip (python 3.10)
Processing ./uggrid
  Running command pip subprocess to install build dependencies
  Collecting cmake>=3.13
    Using cached cmake-3.22.5-py2.py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (22.5 MB)
  Collecting dune-common
    Using cached dune_common-2.8.0.post2-cp310-cp310-linux_x86_64.whl
  Collecting ninja
    Using cached ninja-1.10.2.3-py2.py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl (108 kB)
  Collecting pip
    Using cached pip-22.1.2-py3-none-any.whl (2.1 MB)
  Collecting requests
    Using cached requests-2.28.0-py3-none-any.whl (62 kB)
  Collecting scikit-build
    Using cached scikit_build-0.15.0-py2.py3-none-any.whl (77 kB)
  Collecting setuptools
    Using cached setuptools-62.6.0-py3-none-any.whl (1.2 MB)
  Collecting wheel
    Using cached wheel-0.37.1-py2.py3-none-any.whl (35 kB)
  Collecting portalocker
    Using cached portalocker-2.4.0-py2.py3-none-any.whl (16 kB)
  Collecting mpi4py
    Using cached mpi4py-3.1.3-cp310-cp310-linux_x86_64.whl
  Collecting numpy
    Using cached numpy-1.22.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (16.8 MB)
  Collecting urllib3<1.27,>=1.21.1
    Using cached urllib3-1.26.9-py2.py3-none-any.whl (138 kB)
  Collecting idna<4,>=2.5
    Using cached idna-3.3-py3-none-any.whl (61 kB)
  Collecting charset-normalizer~=2.0.0
    Using cached charset_normalizer-2.0.12-py3-none-any.whl (39 kB)
  Collecting certifi>=2017.4.17
    Using cached certifi-2022.6.15-py3-none-any.whl (160 kB)
  Collecting packaging
    Using cached packaging-21.3-py3-none-any.whl (40 kB)
  Collecting distro
    Using cached distro-1.7.0-py3-none-any.whl (20 kB)
  Collecting pyparsing!=3.0.5,>=2.0.2
    Using cached pyparsing-3.0.9-py3-none-any.whl (98 kB)
  Installing collected packages: ninja, cmake, wheel, urllib3, setuptools, pyparsing, portalocker, pip, numpy, mpi4py, idna, distro, charset-normalizer, certifi, requests, packaging, dune-common, scikit-build

The build will then later fail with a cmake error, as it only find dune-common version 2.8 and not version 2.9.

If this intended behaviour? Or how should I properly handle this local install?

Edited by Christian Engwer