Python Packaging Flashcards
Windows/Mac installation philosophy is ___
self-containment
Linux installation philosophy is ___
modular
Upgrading a dependency affects all packages that depend upon it, which sacrifices some ___
stability
module
Python file
package
directory containing Python files
release
one version
Problem: To use distutils, conventionally developers use setup.py, but ___
it does too much (build, package, publish, install & more) and causes confusion
Problem: static metadata file sent to PyPI is dependent on ___
the platform it is compiled on
Problem: PyPI server
PyPI is a single server holding various dependencies, and thus is a single point of failure
Problem: When distributions are not stored at PyPI and a Download-URL link is provided, therefore ___
installers must follow that link and hope it works
Problem: Distutils installer doesn’t record what was installed, therefore ___
it’s impossible to remove all files
Problem: To work for a particular platform, a packager ___
must repackage and patch setup.py
Improved Standards: Metadata
- sane versioning
- project-level dependencies (e.g. optional versioning of dependencies)
- environment markers to add a condition about the execution environment