migrate-to-uv
What it is and what it does
migrate-to-uv is a CLI tool that automates the conversion of Python projects from Poetry, Pipenv, pip-tools, or pip to uv. It reads existing package manager configuration and lock files, then generates a uv-compatible pyproject.toml with all metadata, dependencies, optional dependencies, dependency groups, and entry points translated to uv's format. It preserves version specifiers by converting them to PEP 440 equivalents and generates a uv.lock file that locks all dependencies to the exact versions they had under the previous manager.
The tool is intended for developers migrating existing projects to uv and runs as a standalone command via uvx or pipx rather than as an imported library. It supports modern Python versions (3.8 through 3.14) and is actively maintained, though marked as Alpha status, indicating the feature set may still evolve.
Use it for:
- Migrate a Poetry project to uv while preserving all metadata, optional dependencies, and locked versions.
- Convert a Pipenv project's lock file to uv.lock without manually re-specifying all transitive dependencies.
- Translate pip-tools constraints to uv dependency syntax and regenerate a compatible lock file.
- Automate bulk migration of multiple projects from different package managers to a standardized uv setup.
- Preserve dependency markers and custom sources (git, URL, path) when switching to uv.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Automates migration of Python projects from Poetry, Pipenv, pip-tools, or pip to the uv package manager, converting project metadata, dependencies, and lock files.
Yes, if you are migrating a project to uv from Poetry, Pipenv, pip-tools, or pip and want to preserve metadata and lock state automatically. The tool is actively maintained, has no runtime dependencies, and carries no licensing restrictions. Alpha status means features may change, but the core migration workflow is stable and widely used. Install via uvx or pipx rather than as a library.
Install
migrate-to-uv on PyPI
pip
pip install migrate-to-uvuv
uv add migrate-to-uvpoetry
poetry add migrate-to-uvInstalling migrate-to-uv
Before you install
Medium install friction due to platform-specific wheels (macOS, Linux, Windows, ARM variants), but no runtime dependencies. Active maintenance with recent releases; marked Alpha status suggests ongoing development.
License in practice
MIT license permits unrestricted use, modification, and distribution with minimal restrictions—suitable for both commercial and open-source projects.
Quickstart
# Install and run with uv
uvx migrate-to-uv
# Or with pipx
pipx run migrate-to-uv
Requires uv or pipx to be installed separately; designed as a command-line tool run via tool runner, not imported as a library.
Verify before relying
- Whether migration preserves all transitive dependencies exactly or only direct dependencies in edge cases.
- Performance characteristics when migrating large projects with hundreds of dependencies.
- Handling of custom Poetry plugins or non-standard package manager configurations.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.8) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 128 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 139,829/month — #11,287 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: migrate_to_uv-0.12.0-py3-none-macosx_10_12_x86_64.whl; migrate_to_uv-0.12.0-py3-none-macosx_11_0_arm64.whl; migrate_to_uv-0.12.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; migrate_to_uv-0.12.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; migrate_to_uv-0.12.0-py3-none-musllinux_1_1_aarch64.whl; migrate_to_uv-0.12.0-py3-none-musllinux_1_1_x86_64.whl; migrate_to_uv-0.12.0-py3-none-win_amd64.whl; migrate_to_uv-0.12.0-py3-none-win_arm64.whl
Keywords: uv, migrate, poetry, pipenv
Tags
More Libraries packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
python-dateutilProvides parsing, arithmetic, and recurrence…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
pytestpytest is a testing framework that lets you…
permissive · top 100 on PyPI
pipenvPipenv automates Python virtual environment…
permissive · top 1,000 on PyPI
poetry-dotenv-pluginA Poetry plugin that automatically loads…
permissive · top 15,000 on PyPI
poetry-plugin-exportExports Poetry's locked dependency tree to…
permissive · top 1,000 on PyPI
uv-builduv-build is a build backend that integrates…
permissive · top 1,000 on PyPI
pip-upgraderAn interactive CLI tool that upgrades Python…
permissive · top 15,000 on PyPI
pip-compile-multiCompiles multiple requirements files into…
permissive · top 15,000 on PyPI
poetryPoetry is a dependency management and packaging…
permissive · top 1,000 on PyPI
nox-poetryIntegrates Poetry's lock file into Nox…
permissive · top 15,000 on PyPI
pip-reviewpip-review is a command-line wrapper around pip…
permissive · top 15,000 on PyPI
pdmPDM is a modern Python package and dependency…
unclear · top 5,000 on PyPI