Became heavy user of NumPy in 2006, core contributor since 2007 • Used python for speech processing, scripting, web applications • Has a unhealthy interest in packaging
in cpython sources) • 1999-2000: distutils (setup.py) by Greg Ward. An official method to distribute 3rd party packages • early 2000: pypi aka the cheeseshop (Richard Jones) • 2004-2005: setuptools, easy_install, eggs (Phillip J. Eby, Bob Ippolito). Automatically install packages from pypi/other sources, binary format (egg)
from sources (no modification of sys.path), requirements file • 2012/2013: pip and setuptools managed by the community (Donald Stufft, Jason R Coombs) • 2012/2013: wheel, a new binary format (PEP 427), and python tags (PEP 425)
use pip, wheels and setuptools, (distribute, eggs and and easy_install are obsolete) • To push to pypi, use twine • more on https://packaging.python.org/
are simple to build • C extensions: different wheels for different platforms • on windows, each python version needs different compiler • on OS X, backward compatibility can be tricky • on Linux: use many linux effort (PEP 513)
binary • Common approach: pyinstaller/pyfreeze/etc. • hard to use • often arcane, use “magic” to figure out imports • Wouldn’t it be great if we could do like go in python ?
of it ! • if you have OSS packages: • build binary wheels for pypi • follow suggestions from https:// packaging.python.org/ • try to help pypa: https://www.pypa.io/en/latest/