Package Management
Python dependency management and packaging in one tool
★ 4.5
Extremely fast Python package manager written in Rust
★ 4.8
pip install poetrycurl -LsSf https://astral.sh/uv/install.sh | shpip install poetrycurl -LsSf https://astral.sh/uv/install.sh | shPython data engineers use Poetry to standardize project setup across the team — running `poetry install` from a cloned repo installs all pinned dependencies in an isolated virtual environment in one step, eliminating environment drift between machines. The `poetry add pandas==2.0` command adds a package, resolves its transitive dependencies against the full graph, and updates `poetry.lock` atomically, preventing the 'it works on my machine' problem. For pipeline projects with separate concerns, `poetry add --group dev pytest great-expectations` keeps test and quality tooling out of the production install. Teams publishing internal data libraries to a private PyPI registry use `poetry publish --repository private-pypi` to handle build and upload in a single authenticated step.
Python data engineers use uv to set up isolated project environments faster than any alternative — running `uv sync` installs all dependencies from a lockfile in seconds rather than minutes, even in fresh CI containers. The `uv run` command executes scripts or tools in ad-hoc virtual environments without manually activating anything, making one-off data processing scripts trivial to share. For teams managing multiple Python versions across projects, `uv python install 3.11 3.12` and per-project `.python-version` files eliminate the need for pyenv entirely. The global cache layer means that once a package version is downloaded, every subsequent project or CI job that needs it installs from disk at near-zero cost.
Individual Tool Pages