manage-python-env
8
总安装量
5
周安装量
#35715
全站排名
安装命令
npx skills add https://github.com/dudusoar/vrp-toolkit --skill manage-python-env
Agent 安装分布
claude-code
3
windsurf
2
trae
2
opencode
2
codex
2
github-copilot
2
Skill 文档
UV Management
Quick reference for uv – the fast Python package installer and environment manager.
Installation
Install UV
# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Or with pip
pip install uv
# Verify installation
uv --version
Project Initialization
Create New Project
# Initialize new project
uv init project-name
# Initialize in current directory
uv init
# With specific Python version
uv init --python 3.11
Project Structure Created
project-name/
âââ pyproject.toml # Project configuration
âââ .python-version # Python version specification
âââ src/
âââ project_name/
âââ __init__.py
Virtual Environment
Create Virtual Environment
# Create venv (automatic with uv)
uv venv
# With specific Python version
uv venv --python 3.11
# With custom name
uv venv .venv-custom
# Activate (same as regular venv)
source .venv/bin/activate # macOS/Linux
.venv\Scripts\activate # Windows
Python Version Management
# List available Python versions
uv python list
# Install specific Python version
uv python install 3.11
# Pin Python version for project
uv python pin 3.11
Package Management
Install Packages
# Install single package
uv pip install package-name
# Install specific version
uv pip install package-name==1.2.3
# Install from requirements.txt
uv pip install -r requirements.txt
# Install from pyproject.toml
uv pip install -e .
# Install development dependencies
uv pip install -e ".[dev]"
Add Dependencies (Modern Way)
# Add package to project
uv add numpy
# Add with version constraint
uv add "numpy>=1.24,<2.0"
# Add multiple packages
uv add numpy pandas matplotlib
# Add as dev dependency
uv add --dev pytest black ruff
# Add from git
uv add git+https://github.com/user/repo.git
Remove Packages
# Remove package
uv remove package-name
# Remove dev dependency
uv remove --dev pytest
Update Packages
# Update single package
uv pip install --upgrade package-name
# Update all packages
uv pip install --upgrade -r requirements.txt
# Sync dependencies (recommended)
uv sync
Dependency Management
Lock Dependencies
# Generate lock file
uv lock
# Lock and sync
uv lock --sync
Export Requirements
# Export to requirements.txt
uv pip freeze > requirements.txt
# Export from pyproject.toml
uv export --format requirements-txt > requirements.txt
Running Commands
Run Python
# Run Python script
uv run python script.py
# Run module
uv run -m module_name
# Run with arguments
uv run python script.py --arg value
Run Tools
# Run pytest
uv run pytest
# Run black
uv run black .
# Run ruff
uv run ruff check .
# Run any tool
uv run tool-name [args]
VRP Project Setup
Initial Project Setup
# 1. Create project directory
mkdir vrp-toolkit
cd vrp-toolkit
# 2. Initialize with uv
uv init
# 3. Create virtual environment
uv venv
# 4. Activate environment
source .venv/bin/activate
# 5. Install core dependencies
uv add numpy pandas matplotlib networkx
# 6. Install dev dependencies
uv add --dev pytest black ruff ipython jupyter
# 7. Install OSMnx (for real map support)
uv add osmnx geopandas
# 8. Install package in editable mode
uv pip install -e .
pyproject.toml for VRP Toolkit
[project]
name = "vrp-toolkit"
version = "0.1.0"
description = "Reusable VRP/PDPTW solving framework"
requires-python = ">=3.8"
dependencies = [
"numpy>=1.24.0",
"pandas>=2.0.0",
"matplotlib>=3.7.0",
"networkx>=3.0",
]
[project.optional-dependencies]
dev = [
"pytest>=7.0.0",
"black>=23.0.0",
"ruff>=0.1.0",
"ipython>=8.0.0",
"jupyter>=1.0.0",
]
osmnx = [
"osmnx>=1.6.0",
"geopandas>=0.14.0",
"folium>=0.15.0",
]
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.ruff]
line-length = 100
target-version = "py38"
[tool.black]
line-length = 100
target-version = ["py38"]
Install All Dependencies
# Install main dependencies
uv add numpy pandas matplotlib networkx
# Install dev tools
uv add --dev pytest black ruff ipython jupyter
# Install OSMnx group
uv add osmnx geopandas folium
# Or install from pyproject.toml
uv sync
Common Workflows
Daily Development
# Activate environment
source .venv/bin/activate
# Run tests
uv run pytest
# Format code
uv run black .
# Lint code
uv run ruff check .
# Run Jupyter
uv run jupyter lab
Add New Dependency
# Add package
uv add package-name
# Test it works
uv run python -c "import package_name; print('OK')"
# Commit updated pyproject.toml
git add pyproject.toml uv.lock
git commit -m "chore: add package-name dependency"
Clean Install
# Remove existing environment
rm -rf .venv
# Recreate
uv venv
# Reinstall all dependencies
uv sync
# Verify
uv run python -c "import numpy; print(numpy.__version__)"
Comparison with pip/venv
| Task | Traditional | UV |
|---|---|---|
| Create venv | python -m venv .venv |
uv venv |
| Activate | source .venv/bin/activate |
Same |
| Install package | pip install package |
uv add package |
| Install requirements | pip install -r requirements.txt |
uv pip install -r requirements.txt |
| Freeze deps | pip freeze > requirements.txt |
uv pip freeze > requirements.txt |
| Run tool | python -m pytest |
uv run pytest |
Key Advantages of UV:
- â¡ 10-100x faster than pip
- ð Built-in dependency locking
- ð Python version management
- ð¦ Cleaner dependency specification in pyproject.toml
Additional Resources
Troubleshooting
Common issues and solutions: See troubleshooting.md
- UV not found after install
- Wrong Python version
- Dependency conflicts
- Package not found
Advanced Usage
Power user features: See advanced.md
- Multiple environments
- Dependency groups
- Build and publish
- Integration with other skills
Migration from pip
Convert existing projects: See migration.md
- Convert requirements.txt to pyproject.toml
- Migrate existing project step-by-step
- pip vs UV comparison
Quick Reference
| Task | Command |
|---|---|
| Init project | uv init |
| Create venv | uv venv |
| Add package | uv add package |
| Add dev dep | uv add --dev tool |
| Install all | uv sync |
| Run script | uv run python script.py |
| Run tool | uv run pytest |
| Update all | uv sync --upgrade |
| Lock deps | uv lock |
| Export reqs | uv pip freeze > requirements.txt |
| Python version | uv python install 3.11 |
| Pin Python | uv python pin 3.11 |