Overview for PyGamma Wheels
Building Redistributable Binaries
As of version 4.3.3, PyGamma is distributed via Python wheels. This document explains how to build those wheels. It's principally for PyGamma's maintainers, although you might want to use it if you build a custom version of PyGamma and want to distribute it to colleagues.
As of this writing (March 2021), PyGamma supports 64-bit Python versions 2.7, 3.6, and 3.7. Building wheels for other platforms/Pythons is possible, but unsupported.
In order to build a wheel, you first need to build the PyGamma binaries. Under Linux, make sure you build the
pysgdist target (
make pysgdist). Under Windows, building the provided solution is sufficient.
Install the Wheel Package
In order to build wheels, your Python needs the
wheel package. Installing that is simple:
pip install wheel
Build the Wheel
Once the binaries have been built, you will have a new directory in your gamma source code tree at
gamma/pygamma/dist_staging. Open a command prompt and
gamma/pygamma which is where
setup.py lives and execute this command:
python setup.py bdist_wheel
Python will create an appropriately-named wheel file for you in
Upload the Wheel to PyPI
This topic is covered here.
Virtual Machine Note
Wheels need to be constructed on the target distribution platform. In other words, if I'm building a wheel for OS X, I need to run
python setup.py bdist_wheel on OS X.
In most setups, this is blindingly obvious. However, if one is using virtual machines to build PyGamma (e.g. a Linux guest on an OS X host), take care to complete all of the steps above in the guest operating system.
One might be tempted to build the binaries on the guest platform and then run the
bdist_wheel step on the host platform (or vice versa). If you do, you'll get a wheel file out of it, but the wheel name won't match the contents so it won't work for anyone.