Tool Lock file Manage Python versions Global cache PEP compliant Upload to PyPI Hatch pip Pipenv PDM Poetry uv
GitHub | Docs
uv can install and manage Python version (like pyenv); Poetry can’t uv manages dependencies and environments for single-file scriptsuv add --script <my-script> <package> && uv run <my-script>
That’s cool, I never seen that in other Python
tools Disk-space efficient; global cache for dependency deduplicationI don’t know how other tools manage that. It would be interesting to
compare with Poetry Drop-in replacement for pip
pipx install uv
to install uvuv python install <version>
to install a Python
versionuv run --python <version> -- <command>
to run a command with a specific
Python versionuvx
(alias for uv tool run
) same as pipx
uv add --script <my-script> <package>
to install a package to one script.GitHub | Docs
GitHub | Docs
“does not follow the standard specifying how metadata should be represented
in a pyproject.toml file (PEP 621), instead using a custom [tool.poetry]
table. This is partly because Poetry came out before PEP 621.”