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