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

uv包管理 - 小学弟

pip 是 Python包管理工具。uv是一个拥有环境管理、依赖管理、Python版本管理、运行脚本、打包发布等多种功能的Python一体化工具链,集齐了venv、virtualenv、pip、poetry能力于一身。

uv对于包的解析安装速度比pip快数十倍,配置虚拟环境的速度也比virtualenv快数十倍。

uv 是一个 超快的 Python 包管理器,它集成了:

  • 包安装(替代 pip
  • 虚拟环境管理(替代 virtualenv
  • 锁定文件(兼容 pip-tools 和 Poetry

 

1、安装uv

1.1 通过pip安装

?
1
pip install uv

1.2 macOS和Linux:

?
1
curl -LsSf https://astral.sh/uv/install.sh | sh  

1.3 Windows:

?
1
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"    

uv工程默认会生成4个文件:

.python-version:记录当前工程的Python版本。

main.py:主脚本。

pyproject.toml:记录当前uv工程的依赖情况。

README.md:工程的说明文件。

 

2、配置环境

使用uv init命令来创建Python项目

然后在Python项目中添加依赖,使用 uv add命令实现,比如 uv add requests

移除依赖 比如 uv remove requests

uv remove: 移除依赖

uv sync: 同步依赖到虚拟环境中

uv lock: 生成锁文件

uv run: 在虚拟环境中运行脚本

uv tree: 查看依赖列表

uv build: 生成发布包

uv publish: 发布到PyPI

uv pip list: 查看安装的库

 

使用虚拟环境

?
1
2
# 创建一个新的虚拟环境
uv venv myproject

使用这个命令可以为项目初始化一个Python虚拟环境,并且可以指定Python解释器版本。

?
1
uv venv --python 3.10

可以通过以下命令直接创建工程并指定python解释器版本。

?
1
uv init myproject -p 3.10

激活虚拟环境

?
1
2
3
4
5
# Linux/macOS:
source myproject/bin/activate
 
# Windows:
myproject\Scripts\activate

  

3、包管理 

uv 能实现pip的所有功能,语法一致 ,而且比pip安装包的速度更快

比如说安装第三方库,使用 uv pip install命令实现

uv pip show: 显示已安装包的细节

uv pip freeze: 显示已安装包列表及其版本号

uv pip check: 检查当前环境是否有兼容的软件包

uv pip uninstall: 卸载包

uv pip tree: 查看环境依赖

?
1
2
3
4
5
6
7
8
9
10
11
# 安装单个包
uv pip install requests
 
# 安装多个包
uv pip install requests numpy pandas
 
# 安装指定版本的包
uv pip install "django>=4.0,<5.0"
 
# 从 requirements.txt 安装
uv pip install -r requirements.txt

安装依赖

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 安装项目依赖(从 pyproject.toml)
uv pip install -e .
 
# 安装开发依赖
uv pip install -e ".[dev]"
 
# 安装所有可选依赖
uv pip install -e ".[dev,docs,web]"
 
# 生成锁定文件
uv pip freeze > requirements.lock
 
# 同步依赖(确保环境与 requirements.txt 完全一致)
uv pip sync requirements.txt

添加依赖 

?
1
2
3
4
5
6
7
8
9
10
11
12
# 添加生产依赖
uv add requests
uv add "django>=4.0,<5.0"
uv add requests beautifulsoup4 pandas
 
# 添加开发依赖
uv add --dev pytest black flake8
uv add --dev "pytest>=7.0"
 
# 添加可选依赖组
uv add --group docs sphinx sphinx-rtd-theme
uv add --group web fastapi uvicorn

 

4、管理Python版本

uv可以安装Python,以及对其版本进行管理。比如安装不同版本Python:

uv python install 3.10 3.11 3.12

uv python list: 查看安装的Python版本

uv python pin: 将当前项目固定为使用特定 Python 版本

uv python uninstall: 卸载某版本Python

uv python find 3.13:  查找特定版本的 Python

 

5、执行Python脚本

执行脚本,使用 uv run命令, 如: uv run test.py

1. 明确指定版本(最高优先级)

?
1
2
3
uv run --python 3.11 script.py
uv run --python python3.12 script.py
uv run --python /usr/bin/python3.10 script.py

2. 项目配置文件  

如果有 pyproject.toml

?
1
2
[project]
requires-python = ">=3.9"

或者 .python-version 文件:  

?
1
3.11.5

3. 环境变量

?
1
2
export UV_PYTHON=3.11
uv run script.py

 

6、场景功能覆盖

uv 在高性能之外,构建了覆盖开发全周期的功能矩阵,实现从环境管理到项目部署的一体化支持:

  • Python版本管理:支持 Python 3.10/3.11/3.12 等多版本并行安装与快速切换,通过 uv python install 命令 10 秒级完成运行环境部署,彻底解决项目间版本冲突问题。

  • 工具管理:兼容 pipx 的工具安装逻辑,通过uv add命令直接安装并运行 Python 应用程序,无缝融入开发工作流。

  • 脚本支持:针对单文件脚本提供内联依赖管理,通过uv add --script为脚本动态注入依赖,避免全局环境或项目污染,实现 “脚本即独立单元” 的轻量化开发。

  • 全面的项目管理:生成uv.lock文件固化依赖版本,结合uv sync命令实现跨环境依赖一致性,提升项目可移植性。

  • 工作区支持:对于大型项目,uv支持Cargo风格的工作区。

  • 全局缓存:uv节省磁盘空间,通过全局缓存实现依赖去重。

 

7、使用场景

想使用Python 3.12,但尚未安装。我们可以先运行以下命令让uv帮我们安装,然后再设置虚拟环境:

?
1
uv python install 3.12

准备好创建虚拟环境时,运行:

?
1
uv venv --python 3.12

需要 requirements.txt文件,可以运行:

?
1
uv pip compile pyproject.toml -o requirements.txt  

可以随时通过 uv pip sync 从 requirements文件安装依赖。  

 

8、高级玩法

?
1
2
3
4
5
import requests
 
 
res = requests.get('http://www.baidu.com')
print(res.text)

没有安装request,运行会报错

可以这样运行,因为这样无需全局安装依赖或在不需要的项目中安装,就能以隔离的方式运行这个脚本

?
1
uv add --script run.py requests

  

9、从其他工具迁移

从pip + venv迁移

?
1
2
3
# 有requirements.txt的项目
uv init
uv add -r requirements.txt 

从Poetry迁移

?
1
2
# Poetry项目直接兼容
uv sync  # 自动识别pyproject.toml 

从Pipenv迁移

?
1
2
3
4
5
# 导出现有依赖
pipenv requirements > requirements.txt
uv init
uv add -r requirements.txt
rm Pipfile Pipfile.lock  # 清理旧文件

  

10、遇到问题?秒速解决!

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 🔧 清理缓存
uv cache clean
 
# 🔄 重建环境
rm -rf .venv && uv sync
 
# 🔍 查看依赖树
uv tree
 
# 🐛 详细日志调试
uv sync --verbose
 
# ✅ 检查配置
uv --version
 
# 依赖冲突解决
uv lock --resolution lowest-direct
 
# 验证环境一致性
uv lock --check
 
# 强制重新解析
uv lock --upgrade

  

 

 
http://www.sczhlp.com/news/80964/

相关文章:

  • 对口型视频创作指南:AI如何让“假唱”变成真艺术?
  • 青羊区建设厅网站代理公司注册网
  • 山东网站建设app织梦做网站要多长时间
  • 网站建设论坛首页西安有哪些好玩的
  • 网站建设业务的途径火车头采集wordpress发布
  • 溧阳城乡建设局网站怎样注册公司邮箱账号
  • wordpress快速建站教程网站加载流量
  • Dockerfile中的yum install、yum clean和rm -rf /var/cache/yum
  • Linux 完整的用户登录工作流程详解(GUI TTY)
  • 0 元夺宝小程序介绍
  • 丹阳市建设局网站百度灰色关键词排名推广
  • 有没有做培养基的网站建设银行手机银行网站用户名是什么原因
  • 淘宝网站都是怎么做的北京印刷厂
  • pc网站wordpress 客户端使用
  • 1企业网站案例黄金网站app下载免费
  • HTMT超链接网站怎么做单页面网站如何优化引流
  • 上海建设行业的资质网站网站模板制作与安装教程视频
  • 中国免费图片素材网站it人力外包服务公司
  • 英文购物网站模板下载求个网站你们知道的
  • 曼朗策划响应式网站建设济宁建设工程信息网
  • 网站开发 seo网站搜什么关键词
  • 线上频繁FullGC?慌得一比!竟是Log4j2的这个“特性”坑了我
  • clickhouse进程stop之后为什么还自动启动
  • 哪家公司做企业网站商城网站设计定制
  • 建网站啦《教师网站建设与应用管理制度》
  • 怎么做微信上的网站吗网络维护公司名字
  • 手机网站模板.wordpress分享小图片不
  • 美食网站的建设背景软件开发项目技术方案
  • 个人网站可以做点什么淘客网站开发教程
  • 外贸开发网站公司苏州现在能正常出入吗