Skip to content

pip install dune-common?

What about generating a pip package of dune python bindings?

The challenge is to also build the C++ part of dune. There are examples that do that as well.

I opened a MR to keep track about the current progress.

Some references:

How Petc4Py does it: https://gitlab.com/petsc/petsc/-/blob/master/setup.py

A simple example for pybind11 projects: https://github.com/pybind/python_example/blob/master/setup.py

And in general: https://packaging.python.org/tutorials/packaging-projects/

Show runpaths in library

readelf -d ~/testvenv/lib/python3.8/site-packages/dune/common/_common.cpython-38-x86_64-linux-gnu.so | grep PATH

Possible testing procedure:

# first clean up any remaining source distribution from modules
./dune-common/bin/dunecontrol exec python ~/DUNEPIP/dune-common/bin/pythonpackage.py -c
# build packages for all modules in current directory with date dependent version number
./dune-common/bin/dunecontrol exec python ~/DUNEPIP/dune-common/bin/pythonpackage.py -s --version 2.8.DATEa0
# move all generated source distributions to '$HOME/dist'
mv */dist/* $HOME/dist
# test locally (in empty env)
pip install -v --log logfile --find-links file://$HOME/dist --no-cache --upgrade dune-fem==2.8.20201017a0 >& install.out
# upload 
python -m twine upload --repository gitlab $HOME/dist/*

needs gitlab entry to ~/.pypirc for the last step

Edited by Andreas Dedner