migrate-pip-to-uv
8
总安装量
8
周安装量
#33799
全站排名
安装命令
npx skills add https://github.com/squirrel289/pax --skill migrate-pip-to-uv
Agent 安装分布
github-copilot
7
codex
7
opencode
6
gemini-cli
6
kimi-cli
6
amp
6
Skill 文档
Migrate pip/pip-tools Monorepo to uv
A skill for automating the migration of a Python monorepo project from pip/pip-tools workflows (requirements files, pip-compile, etc) to uv’s project workflow (pyproject.toml, uv.lock, universal resolution).
Purpose
- Convert requirements files (requirements.in, requirements.txt, requirements-dev.in, requirements-dev.txt, etc) to pyproject.toml and uv.lock
- Migrate development, docs, and platform-specific dependency groups
- Ensure universal, locked dependencies for all platforms
- Update project workflows to use uv commands and environments
Workflow Steps
- Analyze Existing Requirements Files
- Detect requirements.in, requirements.txt, requirements-dev.in, requirements-dev.txt, requirements-docs.in, requirements-docs.txt, etc
- Identify platform-specific requirements files (e.g. requirements-win.txt, requirements-linux.txt)
- Initialize uv Project
- Run
uv initto create pyproject.toml if not present
- Run
- Import Base Dependencies
- Run
uv add -r requirements.in -c requirements.txtto preserve locked versions
- Run
- Import Development Dependencies
- Run
uv add --dev -r requirements-dev.in -c requirements-dev.txt - If requirements-dev.in includes
-r requirements.in, strip those lines before import
- Run
- Import Docs/Other Groups
- Run
uv add -r requirements-docs.in -c requirements-docs.txt --group docs(repeat for other groups)
- Run
- Import Platform-Specific Constraints
- For each platform file, use
uv pip compile requirements.in -o requirements-<platform>.txt --python-platform <platform> --no-strip-markers - Add with
uv add -r requirements.in -c requirements-win.txt -c requirements-linux.txt ...
- For each platform file, use
- Import Dependency Sources
- For local paths or git dependencies, ensure they are mapped in
[tool.uv.sources]in pyproject.toml
- For local paths or git dependencies, ensure they are mapped in
- Sync and Lock
- Run
uv lockto generate uv.lock - Run
uv syncto create .venv and sync environment
- Run
- Update Project Workflows
- Replace pip/pip-tools commands with uv equivalents (e.g.
uv run pytest) - Document new workflow in README.md
- Replace pip/pip-tools commands with uv equivalents (e.g.
Example Usage
migrate-pip-to-uv
Example Migration Commands
uv inituv add -r requirements.in -c requirements.txtuv add --dev -r requirements-dev.in -c requirements-dev.txtuv add -r requirements-docs.in -c requirements-docs.txt --group docsuv pip compile requirements.in -o requirements-win.txt --python-platform windows --no-strip-markersuv add -r requirements.in -c requirements-win.txt -c requirements-linux.txtuv lockuv syncuv run pytest
Best Practices
- Use pyproject.toml for all dependency groups
- Use uv.lock for universal, platform-agnostic locking
- Prefer uv run for all commands in the environment
- Document migration steps and new workflow for contributors
- Remove obsolete requirements files after migration