Building packages in Python used to be hard, especially the ones including compiled extensions. Fortunately, it is getting easier thanks to efforts in the scientific Python community. However, there are still a lot of challenges and complexities facing the package builder.There are at least two major packaging systems (pip/wheel and conda), and lots of different ways to do work with these systems. This tutorial will cover packaging from start to finish for both PyPI and conda, including setup.py, flit, wheels, twine, conda-build, scikit-build, anaconda cloud, and conda-forge. Particular attention will be paid to critical details, such as binary compatibility and platform differences.
See tutorial materials here: https://scipy2018.scipy.org/ehome/299527/648136/