Speaker
Patrick Muehlbauer
Material
Note
- Problems
- multiple tools for the whole workflow
- no real dependency resolution in pip
- multiple files needed for reproducible env (e.g.,
requirements.txt
,dev-requirements.txt
)
- Possible Solutions
- reproducible env
- Pipfile, Pipfile.lock
- distutils/setuptools limitations
- pyproject.toml
- reproducible env
- Python dependency managers
- Which to choose?
- It depends.
- Questions to ask
- Are building a library or an application?
- Doest it fit my infra?
pip-tools
pip-compile
: generates requirements.txt from setup.py or requirements.inpip-sync
: dependency synchronization
Pipenv
- wrapper around pip and virtual environments
- use Pipfile, Pipfile.lock
- for applications rather than libraries
- separate sections for dev and man dependencies
Poetry
- tool to manage dependencies, build and publish packasge
- use pyproject.toml, poetry.lock
hatch
- simplifies development workflow
- warps multiple tools (
pip
,virtualenv
,twine
,pytest
,coverage.py
) - setup.py, requirements.txt