Python 包管理工具uv常用场景使用指南

一、Python 版本管理

1. 查看已安装的 Python 版本
bash 复制代码
uv python list
  • 输出示例:

    text 复制代码
    Installed Python versions:
    - 3.11.5 (default)
    - 3.12.0
2. 安装指定 Python 版本
bash 复制代码
uv python install 3.12.0  # 安装 Python 3.12.0
  • 支持安装任意版本(如 3.9.18、3.13.0 等)。
  • 安装完成后,通过 uv python list 验证是否成功。
3. 切换项目 Python 版本
bash 复制代码
uv python pin 3.12.0  # 将当前项目锁定到 Python 3.12.0
  • 此命令会在项目根目录生成 .python-version 文件,记录版本信息。
  • 后续所有操作(如创建虚拟环境、运行脚本)均默认使用此版本。

二、虚拟环境管理

1. 创建虚拟环境并指定 Python 版本
bash 复制代码
uv venv --python 3.12.0  # 创建名为 .venv 的虚拟环境,使用 Python 3.12.0
  • 若未指定 --python,默认使用项目锁定的版本(通过 uv python pin 设置)。
2. 激活虚拟环境
bash 复制代码
# Linux/macOS
source .venv/bin/activate

# Windows
.venv\Scripts\activate
  • uv 推荐直接使用 uv run 命令运行脚本,无需手动激活环境 :

    bash 复制代码
    uv run script.py  # 自动激活虚拟环境并执行脚本

三、依赖管理

1. 同步依赖项

在项目根目录运行以下命令,根据 pyproject.toml 或 requirements.txt 安装依赖:

bash 复制代码
uv sync  # 安装所有依赖并生成/更新 uv.lock 文件
  • 按分组安装依赖 :

    bash 复制代码
    uv sync --only prod    # 仅安装生产依赖
    uv sync --only dev     # 仅安装开发依赖
2. 添加新依赖并同步
bash 复制代码
uv add requests==2.31.0      # 添加生产依赖
uv add --group dev pytest    # 添加开发依赖
uv sync                      # 更新依赖并生成锁定文件

四、多版本 Python 场景示例

场景:项目 A 使用 Python 3.11,项目 B 使用 Python 3.12
  1. 初始化项目 A

    bash 复制代码
    cd project_a
    uv python pin 3.11.5    # 锁定 Python 版本
    uv venv                 # 创建虚拟环境
    uv add numpy            # 添加依赖
    uv sync
  2. 初始化项目 B

    bash 复制代码
    cd project_b
    uv python pin 3.12.0    # 锁定 Python 版本
    uv venv
    uv add pandas
    uv sync
  3. 运行脚本

    bash 复制代码
    cd project_a
    uv run main.py  # 使用 Python 3.11 和 project_a 的依赖
    
    cd ../project_b
    uv run main.py  # 使用 Python 3.12 和 project_b 的依赖

五、常用命令总结

功能 命令 说明
安装 Python 版本 uv python install <version> 如 uv python install 3.12.0
锁定项目 Python 版本 uv python pin <version> 生成 .python-version 文件
创建虚拟环境 uv venv 默认使用锁定的 Python 版本
同步依赖 uv sync 安装依赖并生成/更新 uv.lock
运行脚本 uv run <script> 自动激活虚拟环境并执行

六、注意事项

  1. 全局 Python 版本
    uv 默认通过虚拟环境隔离 Python 版本,无需全局切换。每个项目独立管理版本。

  2. 依赖锁定文件

    提交 uv.lock 到版本控制,确保团队成员和 CI/CD 环境的一致性。

  3. 性能优化

    利用 uv 的全局缓存加速依赖安装(默认路径:~/.cache/uv)。

通过上述操作,uv 可实现从 Python 版本管理到依赖同步的全流程高效控制。

相关推荐
weixin_4604435613 小时前
2026年新修订《网络安全法》实施:Java私有化考试系统如何做好SBOM、漏洞治理与安全升级?
java·开发语言·在线考试系统·企业培训考试系统·宏远培训考试系统·国企培训考试系统·国产化培训系统
kobe_OKOK_15 小时前
__getattr__和__getattribute__如何用
python
全栈弄潮儿16 小时前
Python实战第2期: 变量与数据类型
后端·python·agent
长沙三为智能科技16 小时前
家政小程序门店运营模块设计:会员、下单、派单、结算四段链路的落地拆解
python·小程序·内容运营
Cc.Y16 小时前
Java零基础入门:可变字符串与包装类:StringBuilder、StringBuffer 与 通讯录管理系统实战
java·开发语言·python
启观川16 小时前
数据结构与算法 -第 3 章 常用算法-动态规划
数据结构·笔记·python·算法
码爸16 小时前
排序算法介绍
python·算法·排序算法
阿森_dev16 小时前
2027 届毕设选题怎么选:30 个 Java 方向选题的实现难度排序
java·开发语言·spring boot·毕业设计·课程设计
by2099916 小时前
C++ 多态:同一个基类接口,调用不同的函数
开发语言·c++·经验分享·多态
笔墨登场说说16 小时前
flink bin/start-cluster.sh 帮我做成开机启动
开发语言·python