Month: February 2022

Manually building manylinux python wheels

After having achived to build the windows wheels for pyLARDA on anacoda, I tried to tackle the linux version. There it’s a bit more complicated, as the wheels are kind of distribution dependent (and are not accepted by pypi).

auditwheel (https://github.com/pypa/auditwheel) allows to put the external shared libraries into the wheel itself, however the have to be compiled with a rather ‘old’ version to be cross-platform compatible.

The manylinux project (https://github.com/pypa/manylinux) providing docker images to simplify this step:

docker pull quay.io/pypa/manylinux2014_x86_64
docker images #to get the id

The source code needs to be available somewhere in the current path, afterwards fire up docker:

docker run -it -v $(pwd):/io 90ac8ec

Then inside the docker container:

cd io/larda
PYBIN=/opt/python/cp38-cp38/bin/
# pyLARDA requires cython as a prerequisite
${PYBIN}/pip install cython
${PYBIN}/pip install .
${PYBIN}/python -m pyLARDA
${PYBIN}/python setup.py bdist_wheel
cd dist/
auditwheel show pyLARDA-3.3.2-cp38-cp38-linux_x86_64.whl
auditwheel repair pyLARDA-3.3.2-cp38-cp38-linux_x86_64.whl

Now the manylinux wheels should be available in the dist/wheelhouse/ directory.