3 ms·
Packaging has been increasingly improving, and I would dare to say that it is currently in a very good shape. The key problem is that of "blind scientists and a
by BerislavLopac 4y ago
Packaging has been increasingly improving, and I would dare to say that it is currently in a very good shape. The key problem is that of "blind scientists and an elephant": the term "packaging" means different things to different people, and details depend on specific circumstances. And Python has some quite specific details that are not present in many other languages, which adds to the complexity.
Without going into all the available solutions for all possible cases, here's a list of use cases that Python packaging needs to cover:
- dependency management and packaging:
- abstract for libraries, concrete for applications [0]
- pure Python dependencies
- dependencies with binaries included
- packaging format: sdist, wheel, conda
- library repositories: public (PyPI), private, mirrors etc
- installing the Python executable
- multiple Python executables
- management of (multiple) virtual environments
Multiple standards have been adopted to deal with many of those cases, but many existing projects still haven't been updated and still need to be supported. Although we currently don't have a single tool that will cover every single possible use case, things are slowly but surely moving in the right direction.
[0] https://caremad.io/posts/2013/07/setup-vs-requirement/ https://caremad.io/posts/2013/07/setup-vs-requirement/