Skip to content
Sam Gross edited this page Aug 10, 2023 · 8 revisions

I am in the process of moving the build scripts to GitHub actions at https://github.com/colesbury/nogil-wheels. The instructions below are for the previous build scripts, some of which are still in use.

git clone https://github.com/colesbury/nogil-install.git
cd nogil-install/pip

Build first sets of packages:

./cython.sh
./cffi.sh
./pybind11.sh

Build NumPy (requires cython):

./numpy.sh

Build more pacakges:

./awkward.sh
./boost-histogram.sh
./blis.sh
./cffi.sh
./cymem.sh
./h5py.sh
./jax.sh
./llvmlite.sh
./lxml.sh
./markupsafe.sh
./opencv-python-headless.sh
./opencv-python.sh
./orjson.sh
./pglast.sh
./pillow.sh
./protobuf.sh
./psycopg2-binary.sh
./pydantic.sh
./scipy.sh
./thinc.sh

Build matplotlib (requires Pillow and NumPy)

./matplotlib.sh

Build spacy (depends on thinc, markuplib, and blis)

./spacy.sh

Build PyTorch

PyTorch still uses the scripts in https://github.com/colesbury/nogil-install/tree/master/pip/pytorch:

First build the Docker images which combines the nogil/manylinux2014_x86_64 with the pytorch/manylinux-cuda110 image. Then run the pytorch.sh and torchvision.sh scripts.

./build_docker.sh
./pytorch.sh
./torchvision.sh

Notes

Some projects use versioneer to compute versions from git tags. Make sure to tag the nogil fork as if it were the original version. For example, with NumPy 1.22.3:

git co -b v1.22.3-nogil
git tag -d v1.22.3
git tag v1.22.3
git push fork v1.22.3 --force