migrate-to-uv
migrates a project to uv from another package manager.
# With uv
uvx migrate-to-uv
# With pipx
pipx run migrate-to-uv
The following package managers are supported:
- Poetry (including projects using PEP 621 in Poetry 2.0+)
- Pipenv
- pip-tools
- pip
More package managers (e.g., setuptools) could be implemented in the future.
migrate-to-uv
converts most existing metadata from supported package managers when migrating to uv, including:
- Project metadata (
name
,version
,authors
, ...) - Dependencies and optional dependencies
- Dependency groups
- Dependency sources (index, git, URL, path)
- Dependency markers
- Entry points
Version definitions set for dependencies are also preserved, and converted to their equivalent PEP 440 for package managers that use their own syntax (for instance Poetry's caret syntax).
At the end of the migration, migrate-to-uv
also generates uv.lock
file with uv lock
command to lock dependencies,
and keeps dependencies (both direct and transitive) to the exact same versions they were locked to with the previous
package manager, if a lock file was found.