# langchain-study **Repository Path**: fun-study/langchain-study ## Basic Information - **Project Name**: langchain-study - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-19 - **Last Updated**: 2025-11-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 🚀 uv 常用命令详解(2025 最新版) `uv` 是由 Astral(Ruff 团队)开发的 **超高速 Python 包管理器和项目工具**,用 Rust 编写,性能远超 pip/pipenv/poetry,同时兼容 pip/requirements.txt 格式。 --- ## 📁 一、项目初始化与管理 ### `uv init` — 初始化新项目 ```bash # 创建标准项目结构 uv init my_project # 创建应用型项目(带 main.py) uv init my_project --app # 创建库项目(不带可执行入口) uv init my_project --lib # 指定 Python 版本 uv init my_project --python 3.11 # 不创建虚拟环境(稍后手动创建) uv init my_project --no-venv # 交互式初始化(可选配置) uv init --interactive ``` > ✅ 自动生成:`pyproject.toml`、`README.md`、`.gitignore`、虚拟环境(默认) --- ## ➕ 二、依赖管理(核心功能) ### `uv add` — 添加依赖 ```bash # 添加生产依赖 uv add requests # 添加开发依赖 uv add pytest --dev # 添加指定版本 uv add django==4.2.7 uv add "numpy>=1.24,<2.0" # 添加可选依赖组(extra) uv add redis --extra web # 从 git 仓库安装 uv add git+https://github.com/psf/requests.git uv add git+https://github.com/psf/requests.git@main uv add git+https://github.com/psf/requests.git@v2.31.0 # 从本地路径安装 uv add ./my_local_package # 从 URL 安装 wheel uv add https://example.com/mypackage-1.0-py3-none-any.whl # 同时添加多个包 uv add requests httpx rich ``` ### `uv remove` — 移除依赖 ```bash # 移除生产依赖 uv remove requests # 移除开发依赖 uv remove pytest --dev # 移除多个包 uv remove package1 package2 ``` --- ## 🧪 三、虚拟环境与运行 ### `uv venv` — 创建虚拟环境 ```bash # 创建默认虚拟环境(.venv) uv venv # 指定目录 uv venv .myenv # 指定 Python 解释器 uv venv --python 3.11 uv venv --python /usr/bin/python3.12 # 使用系统 Python(不复制) uv venv --system-site-packages # 重建虚拟环境 uv venv --force ``` ### `uv run` — 在环境中运行命令 ```bash # 运行 Python 脚本 uv run python main.py # 运行模块 uv run python -m http.server 8000 # 运行测试 uv run pytest tests/ # 运行带参数的命令 uv run black . --check # 隔离模式(不使用项目依赖) uv run --isolated python script.py # 指定 Python 版本运行 uv run --python 3.11 python script.py ``` > 💡 `uv run` 会自动激活虚拟环境,无需手动 `source .venv/bin/activate` --- ## 🔐 四、依赖解析与锁定 ### `uv lock` — 生成/更新锁文件 ```bash # 生成或更新 uv.lock uv lock # 升级所有依赖到最新兼容版本 uv lock --upgrade # 升级特定包 uv lock --upgrade-package requests uv lock -P pytest # 简写 # 不升级现有包(只添加新依赖) uv lock --no-upgrade # 强制重新解析所有依赖 uv lock --refresh # 输出详细解析过程 uv lock --verbose ``` ### `uv sync` — 同步环境(安装依赖) ```bash # 安装所有生产依赖 uv sync # 安装生产和开发依赖 uv sync --dev # 只安装生产依赖(排除 dev) uv sync --no-dev # 重新安装所有包(清理缓存) uv sync --refresh # 仅安装,不更新锁文件 uv sync --frozen ``` --- ## 📦 五、pip 兼容命令(迁移友好) ### `uv pip install` — 安装包(兼容 pip) ```bash # 安装单个包 uv pip install requests # 从 requirements.txt 安装 uv pip install -r requirements.txt # 安装当前项目(开发模式) uv pip install -e . # 安装带 extras uv pip install ".[dev]" # 从索引安装 uv pip install --index-url https://pypi.tuna.tsinghua.edu.cn/simple/ requests # 升级包 uv pip install --upgrade requests # 忽略已安装(强制重装) uv pip install --force-reinstall requests ``` ### `uv pip uninstall` — 卸载包 ```bash uv pip uninstall requests uv pip uninstall -y requests # 跳过确认 ``` ### `uv pip list` — 列出已安装包 ```bash uv pip list uv pip list --outdated # 显示可升级包 uv pip list --format json # JSON 格式输出 ``` ### `uv pip show` — 显示包信息 ```bash uv pip show requests ``` ### `uv pip check` — 检查依赖冲突 ```bash uv pip check ``` --- ## 🌳 六、依赖树与导出 ### `uv tree` — 显示依赖树 ```bash # 显示完整依赖树 uv tree # 包含开发依赖 uv tree --dev # 显示特定包的依赖 uv tree --package requests # 按字母排序 uv tree --sort # 显示版本冲突 uv tree --prune ``` ### `uv export` — 导出 requirements.txt ```bash # 导出生产依赖 uv export > requirements.txt # 导出包含开发依赖 uv export --dev > requirements-dev.txt # 不包含哈希值(便于版本控制) uv export --no-hashes > requirements.txt # 导出为 pip-compile 格式 uv export --format=requirements.txt ``` --- ## 🐍 七、Python 版本管理 ### `uv python` — 管理 Python 解释器 ```bash # 列出可用 Python uv python list # 安装新 Python 版本(需启用) uv python install 3.12 # 查找当前项目使用的 Python uv python find # 列出所有已安装 Python uv python list --all # 验证 Python 安装 uv python validate ``` > ⚠️ Python 安装功能默认未启用,需设置 `UV_PYTHON_INSTALL_DIR` --- ## 🧹 八、缓存与清理 ### `uv cache` — 管理缓存 ```bash # 清理所有缓存 uv cache clean # 清理特定包缓存 uv cache clean requests # 显示缓存目录 uv cache dir # 显示缓存统计 uv cache stats ``` ### `uv tool` — 管理全局工具 ```bash # 安装全局工具 uv tool install black # 卸载工具 uv tool uninstall black # 列出已安装工具 uv tool list # 运行工具 uv tool run black . # 安装特定版本工具 uv tool install "black==24.0" ``` --- ## ⚙️ 九、配置与环境变量 ### 配置方式优先级(从高到低): 1. 命令行参数 2. 环境变量 3. 项目配置文件(`pyproject.toml` 或 `uv.toml`) 4. 用户配置文件(`~/.config/uv/uv.toml`) 5. 系统配置文件 ### 常用环境变量: ```bash export UV_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple/ export UV_PYTHON=3.11 export UV_CACHE_DIR=~/.cache/uv export UV_PROJECT_ENVIRONMENT=.venv ``` ### 配置文件示例(`uv.toml`): ```toml [index] url = "https://pypi.tuna.tsinghua.edu.cn/simple/" [python] version = "3.11" [cache] dir = "~/.cache/uv" [pip] compile-bytecode = true ``` --- ## 🔄 十、典型工作流示例 ### 新项目开发流程: ```bash # 1. 初始化项目 uv init myapp --app cd myapp # 2. 添加依赖 uv add requests httpx uv add pytest pytest-cov --dev # 3. 同步环境 uv sync # 4. 运行应用 uv run python main.py # 5. 运行测试 uv run pytest # 6. 导出 requirements(部署用) uv export > requirements.txt ``` ### 现有项目迁移: ```bash # 1. 从 requirements.txt 安装 uv pip install -r requirements.txt # 2. 生成 pyproject.toml(可选) uv init --no-venv # 然后手动编辑 # 3. 生成锁文件 uv lock # 4. 后续使用 uv add/remove 管理依赖 ``` --- ## 🚨 十一、注意事项 1. **锁文件**:`uv.lock` 是自动生成的,不应手动编辑 2. **虚拟环境**:默认创建在 `.venv/` 目录 3. **兼容性**:完全兼容 pip,可逐步迁移 4. **速度**:比 pip 快 10-100 倍,比 poetry 快 5-10 倍 5. **版本控制**:建议提交 `uv.lock` 到 Git 以确保环境一致性 --- ## 📚 十二、帮助与文档 ```bash # 查看所有命令 uv --help # 查看特定命令帮助 uv add --help uv pip install --help # 查看版本 uv --version ``` 官方文档:https://docs.astral.sh/uv/ --- `uv` 是目前 Python 生态中**最快、最现代的包管理工具**,强烈推荐新项目使用,老项目也可无缝迁移。🚀