Python is a programming language with a long history and with well-established applications in numerous areas, spanning web and local apps, libraries, data science, machine learning, and others. Over the past few years, Python has risen to sit near or at the top of multiple popularity metrics, including the TIOBE and PYPL indices. There are many factors that have contributed to Python’s rise to prominence, including how easy it is to use and learn, how flexible and powerful it can be, and how it can be interfaced with many other languages like C and Rust to take advantage of their strengths.
One key aspect of Python’s rise is its distribution and packaging story. Many people might be surprised to hear this, as the common perception is often that Python packaging/distribution is variously “messy,” “frustrating,” “very bad,” and “an absolute disaster.” However, these perceptions are an outgrowth of the fact that Python distribution and packaging is extremely *flexible*—and this flexibility is a double-edged sword. Even though part of the power of Python is its support for a tremendous variety of distribution/packaging workflows, this variety is *very* challenging for newcomers (and sometimes experts!) to understand and successfully navigate.
Intense packaging discussions trying to improve the situation have been a recurring theme throughout the last decade or more, including a recent series of threads on the Python Discourse on high-level packaging strategy and organizational structure (see links below) and a panel episode of the Talk Python To Me podcast. However, these discussions have focused primarily on the set of tools maintained by the “Python Packaging Authority” (PyPA) working group. The totality of the Python distribution and packaging story extends well beyond the umbrella of the PyPA.
In this roundtable discussion, you’ll hear the perspective of maintainers of some of the projects from the broader Python distribution and packaging ecosystem, including Conda, Spack, Nix, EasyBuild, Homebrew, Conan, meson-python, and scikit-build. We also have individuals representing the PyPA and the CPython project itself, to weigh in with their thoughts. The goal of this roundtable is to explore the use cases met and pain points solved by these projects; and, in particular, the goal is *not* to identify solutions or strategies for reshaping Python distribution & packaging. In order to frame solutions, you have to first understand the situation, the people involved, and both their met and unmet needs—it’s our hope that this conversation will contribute positively to the overall body of knowledge around Python packaging and distribution, and facilitate broader strategic discussions in the future.
Links:
Python Packaging Strategy Discussion - Part 1: [ Ссылка ]
Python Packaging Strategy Discussion - Part 2: [ Ссылка ]
Proposal to create a Python Packaging Council: [ Ссылка ]
Talk Python To Me Ep. 406, "Reimagining Python's Packaging Workflows": [ Ссылка ]
PyPA: [ Ссылка ]
CPython: [ Ссылка ]
Conan: [ Ссылка ]
Conda: [ Ссылка ]
EasyBuild: [ Ссылка ]
Homebrew: [ Ссылка ]
meson-python: [ Ссылка ]
Nix/NixOS: [ Ссылка ]
scikit-build: [ Ссылка ]
Spack: [ Ссылка ]
Ещё видео!