Python包管理工具之uv的使用详细指南
uv是一个新兴的 Python 包管理工具它旨在提供比pip和poetry更快、更现代的依赖管理体验。uv由Charles Murphy开发基于 Rust 构建具有极高的性能和兼容性支持标准的requirements.txt文件以及pyproject.toml中的依赖声明。一、uv 的特点特点描述极速安装使用 Rust 编写依赖解析速度远超 pip 和 Poetry安全性支持签名包验证PEP 458支持多种格式兼容 wheels、sdists、editable installs虚拟环境管理自动创建和管理虚拟环境依赖锁定自动生成 uv.lock 文件确保可重复构建多种配置方式支持 requirements.txt、pyproject.toml 等跨平台支持 macOS、Linux、Windows二、安装 uv使用官方推荐方式适用于大多数用户12# macOS / Linux 用户使用以下命令安装curl -Ls https://install.uv.rs | sh安装后会将uv添加到你的 PATH 中。使用 pip 安装Python 3.81pipinstalluv使用 conda/mamba 安装Conda 用户1condainstall-c conda-forge uv三、基本使用方法1. 初始化项目并创建虚拟环境123mkdirmyproject cdmyprojectuv venvsource.venv/bin/activate# Windows: .venv\Scripts\activateuv venv会自动在当前目录下创建.venv虚拟环境。2. 安装依赖使用 requirements.txt1uv pipinstall-r requirements.txt安装单个包1uv pipinstallrequests安装开发依赖1uv pipinstallpytest --dev注意目前--dev仅在使用pyproject.toml时有效。3. 生成依赖文件1uv pip freeze requirements.txt或使用1uv lock这会生成uv.lock文件用于精确锁定依赖版本。4. 使用 pyproject.toml 管理依赖你可以创建一个pyproject.toml来定义项目依赖1234567891011[project]name myappversion 0.1.0dependencies [requests,fastapi0.68.0,0.70.0][build-system]requires [setuptools42]build-backend setuptools.build_meta然后执行1uvsync这会根据pyproject.toml安装依赖并自动生成uv.lock文件。5. 升级依赖1uv pip upgrade requests升级所有依赖1uv pip upgrade --all6. 删除依赖1uv pip uninstall requests四、高级功能1. 可重复构建Reproducibility通过uv.lock文件可以保证不同机器上的依赖完全一致1uvsync该命令会严格按照uv.lock中的版本安装依赖。2. 支持编辑模式Editable Installs1uv pipinstall-e .适合本地开发调试。3. 镜像源设置Mirror Support1uv pipinstallrequests --index-url https://pypi.tuna.tsinghua.edu.cn/simple支持国内镜像加速安装。五、uv vs pip vs poetry 对比功能uvpippoetry依赖解析速度⚡⚡⚡⚡⚡⚡锁机制✅ (uv.lock)❌✅ (poetry.lock)虚拟环境管理✅❌需配合 venv✅编辑模式支持✅✅✅依赖冲突检测✅❌✅打包发布支持❌❌✅镜像源支持✅✅✅安装方式独立二进制、pip、condapippip、standalone installer六、适用场景推荐场景推荐快速脚本、小项目✅ uv requirements.txtWeb 后端开发✅ uv pyproject.toml数据科学、AI 模型训练✅ uv Conda如 Miniforge需要打包发布的库✅ Poetry需要多 Python 版本切换✅ pyenv uv七、示例流程从零开始1234567891011121314151617181920212223# 创建项目目录mkdirhello-uv cdhello-uv# 创建虚拟环境uv venv# 激活虚拟环境source.venv/bin/activate# 安装依赖uv pipinstallrequests# 查看已安装包uv pip list# 冻结依赖uv pip freeze requirements.txt# 生成锁文件uv lock# 后续只需运行uvsync
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2475207.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!