当前位置: 首页 > news >正文

UV使用

安装UV

已有python环境,直接通过pip安装:

pip install uv

或者通过命令来运行:

# windows环境,在powershell窗口执行:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"# Mac OS 或 Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

项目管理流程

1)创建项目或项目环境

# 创建项目环境同时自动创建文件夹
uv init project_name   # project_name为自己的项目文件夹名称# 如果是已有的项目文件夹
cd project_name   # 进入项目文件夹
uv init

执行上述命令后,会自动在文件夹下生成如下文件或文件夹,其中如果已有main.py,不会覆盖,自动创建的main.py只是个示例文件:

├── .python-version
├── README.md
├── main.py
└── pyproject.toml
└── .gitignore
.git

其中两个重点文件:

pyproject.toml是uv用于指定依赖项以及项目信息的文件,可以手动编辑此文件,使用uv add以及uv remove工具时,会自动更新此文件。

.python-version是用于管理python版本的文件

2) 创建虚拟环境

   uv venv

3) 激活虚拟环境

\# linux/mac 
source .venv/bin/activate  
# windows 
.venv\Scripts\activate

使用中发现,好像不需要特意激活

4)创建虚拟环境并生成lock文件

# 如果是新项目,运行如下命令,会创建.venv环境以及uv.lock文件
uv sync# 如果希望从之前的requirements.txt文件导入,会自动安装对应的包,并创建.venv环境以及uv.lock文件
uv add -r requirements.txt

其中:uv.lcok文件是一个toml格式文件,用于记录每个依赖及其子依赖的哈希值和下载源,确保环境一致性,不应该手动编辑,依赖于pyproject.toml文件来生成

5)添加、删除、更新、查看包

# 强烈不建议使用uv pip install命令,不会自动更新pyproject.toml文件
# 应该使用如下命令
uv add package  # package为需安装的包名称
uv add "fastapi>=0.68.0" # fastapi的版本为0.68.0
uv remove package 
uv tree  # 树形结构显示已安装的包以及包依赖
uv pip list  # 会显示由uv管理和不由uv管理的所有安装包比如使用uv pip install安装的包
uv lock --upgrade-package loguru  # 更新包
uv lock --upgrade #更新依赖# 更多命令
uv add --group dev pandas  # 安装到开发环境
uv add --group production requests  # 安装到生产环境
uv add "httpx>=0.20"  # 版本条件

6)运行程序

# uv自动按照当前目录下的.venv识别和调用虚拟环境来运行
uv run your_script.py

配置镜像源

# 在pyproject.toml中,添加如下内容,url为自行添加的镜像源地址:
[[tool.uv.index]]
url = "https://mirrors.aliyun.com/pypi/simple"
default = true# 在终端中临时使用指定镜像源,包的名字在最后
uv add --default-index https://mirrors.aliyun.com/pypi/simple playwright# 国内常用镜像源列表
清华大学 (TUNA): https://pypi.tuna.tsinghua.edu.cn/simple
阿里云 (Aliyun): https://mirrors.aliyun.com/pypi/simple/
中国科学技术大学 (USTC): https://pypi.mirrors.ustc.edu.cn/simple/
豆瓣 (Douban): http://pypi.douban.com/simple/
华为云 (Huawei Cloud): https://repo.huaweicloud.com/repository/pypi/simple

配置python版本

# 创建或初始化项目时
uv venv .venv --python 3.10   # 指定python版本# 在项目.venv已创建后,希望修改python版本
手动更改项目python版本。在pyproject.toml以及.python-version中更改版本之后,执行uv sync就会自动安装新版本pythonuv python list # 列出所有可用的python版本,包括本地已安装的版本
uv python install 3.13.2 # 使用uv安装指定版本的python

lock和sync

uv lock
# 精确依赖记录:根据 pyproject.toml 解析依赖关系,生成或更新 uv.lock 文件,
# 记录所有依赖及其子依赖的 精确版本、哈希值、下载源,确保开发、测试、生产环境的依赖完全一致,
# 避免因版本差异导致的兼容性问题
# 依赖树解析:基于 PubGrub 算法智能选择兼容版本,解决依赖冲突
# 哈希验证:依赖包的哈希值记录在 uv.lock 中,安装时校验完整性,防止篡改或损坏uv lock --check  # 检查更新
uv lock --update  # 强制重新解析依赖uv sync 
# 根据锁定文件"uv.lock"安装依赖,使当前环境依赖与锁定文件完全一致,不会自动更新pyproject.toml
# 根据 uv.lock 或 pyproject.toml 安装或更新依赖,使虚拟环境与声明文件完全一致
# 卸载环境中未在锁文件中声明的多余依赖,保持环境纯净
# 利用全局缓存(默认路径 ~/.cache/uv)复用已下载的包,减少网络传输和重复构建
http://www.rkmt.cn/news/16546.html

相关文章:

  • 学生管理系统面向对象分析报告
  • 云原生架构的演进与落地:重塑企业 IT 的核心能力 - 实践
  • Kubernetes(K8s)核心架构解析与实用命令大全 - 教程
  • mzoj 2025/10/6
  • 在 Windows 系统下配置 VSCode + CMake + Ninja 进行 C++ 或 Qt 创建
  • UNION 与 UNION ALL 的区别 - 详解
  • 实用指南:第三十三天打卡复习
  • 排序综合
  • Java从入门到精通 - 常用API(一) - 详解
  • iTunes 无法备份 iPhone:10 种解决方法 - 详解
  • 关于调和级数估算前n项的和
  • 智慧决策的透明化路径:“空白金兰契”架构下的“悟空备案制”研究
  • 详细介绍:WIN11+VSCODE搭建c/c++开发环境
  • Windows 11 24H2 中文版、英文版 (x64、ARM64) 下载 (2025 年 9 月发布)
  • Marchenko理论
  • 深入解析:【RabbitMQ】- Channel和Delivery Tag机制
  • 调用百度AI接口实现网络图片中的文字识别
  • QT开发技术【ffmpeg + QAudioOutput】音乐播放器 - 指南
  • 实用指南:React 组件异常捕获机制详解
  • win11 为什么我的程序断网就转入导后台进程
  • 深入解析:AI与区块链:数据确权与模型共享的未来
  • 10.6阅读笔记
  • 牛客 周赛109 20250924
  • AirSim 安装过程记录 - zzh
  • 基于AXI模块的视频流传输(硬件连接篇)
  • 仿射密码
  • kubeadm续约k8s 1.23.14所有证书
  • 深入解析:AI破局:饿了么如何搅动即时零售江湖
  • [题解]P12008 【MX-X10-T4】[LSOT-4] Fragment of Memories
  • 2.Android Compose 基础系列:在 Kotlin 中创建和使用变量