uv初步介绍及简单的使用方法例子

uv初步介绍及使用:

uv初步了解总结表格:

可以看一下这个网址从pip到uv:一口气梳理现代Python项目管理全流程!

和我摘取的这个网址意思的表格(看完这个视频结合表格以后就懂了):

演进阶段 使用工具 解决了什么问题 带来了什么新问题 最简单代码案例(含解释)
1. 全局安装阶段 全局 pip install 安装非常直接,先把包装上就能用。 项目之间没有边界:多个项目共用同一套包,容易发生版本冲突和环境污染。 python -m pip install requests 解释: 这条命令会把 requests 直接安装到当前 Python 的全局环境里。优点 是简单,装完马上能用;缺点是这个包会和其他项目共享,一旦别的项目需要不同版本,就容易冲突。
2. 虚拟环境阶段 venv 解决项目间的隔离问题:每个项目有自己独立的 Python 包目录。 环境可复制性还不强:你本地能跑,不代表别人知道该装哪些包。 python -m venv .venvsource .venv/bin/activatepython -m pip install requests解释: 第一句先创建一个叫 .venv 的虚拟环境,相当于给当前项目单独准备一套 Python 空间;第二句激活它;第三句把 requests 安装到这个项目自己的环境里,而不是装到全局。这样不同项目就隔离开了。
3. 依赖清单阶段 requirements.txt 开始解决"别人怎么装":把要安装的依赖写进文件,别人可以一次装好。 常见做法是 pip freeze > requirements.txt,因为导出了所有底层级联依赖,无法区分哪些是核心包,长期极难维护。 python -m pip freeze > requirements.txtpython -m pip install -r requirements.txt解释: 第一条命令会把当前环境里已经安装的包及其版本全部导出到 requirements.txt;第二条命令则是根据这个文件重新安装依赖。这样你就能把"我这里能跑的环境"交给别人复现。
4. 项目声明阶段 pyproject.toml 开始以项目为中心:声明"这个项目罪需要什么"。而不是"当前环境碰巧装了什么"。这样不用记下来那么多的依赖包和碰巧安装的其他包。 流程仍然分散:环境创建、依赖安装、运行命令,通常还是要靠多个工具和多步操作拼起来。 pyproject.toml[project] name = "demo" dependencies = ["requests"] 然后执行: python -m pip install -e . 解释: 这里不再是"先装一堆包,再导出来安装包目录",而是直接在 pyproject.toml 里声明:这个项目叫 demo,它依赖 requests。后面的 pip install -e . 表示把"当前项目"以开发模式安装进环境里。重点变成了:项目自己说清楚它要什么依赖
5. 统一项目工作流阶段 uv(以及 Poetry / PDM) 把整条链路串起来:把依赖、锁定、同步、运行合成一套工作流。 主要是需要适应新命令和新习惯。 uv init democd demouv add requestsuv run python main.py解释: uv init demo 先创建一个新项目;cd demo 进入项目目录;uv add requests 会把依赖加入项目配置,并同步环境;uv run python main.py 则直接在项目环境里运行程序。你不再需要自己手动拼很多步骤,而是交给 uv 统一处理。

uv简单使用方法:

uv核心命令清单

  • uv init:初始化一个全新的现代 Python 项目(会自动创建 pyproject.toml、.python-version、README.mdmain.py 等基础文件。)。
    • 如果你在uv init后面提供了名称(比如uv init my_spider)先创建一个项目文件夹,然后再把这些基础文件放到项目文件夹里。
  • uv python install:安装或确认项目所需的 Python 版本;如果项目有 .python-version,uv 会按它来处理。
  • uv add <包名>:安装依赖,并自动将其记录到 pyproject.toml 中。(如果是测试工具,用 uv add --dev <包名>)。
  • uv run <命令>最省心的命令 。自动在当前项目的虚拟环境中执行代码,无需手动 source activate 激活环境。
  • uv sync:根据项目配置,一键将本地虚拟环境同步到完全一致的状态。
🌰 uv例子:从零写一个小爬虫

假设你要新建一个抓取网页的项目:

bash 复制代码
# 1. 初始化项目
uv init my_spider
cd my_spider

# 2. 如有需要,安装/确认 Python 版本
# uv python install

# 2. 添加需要的第三方包(uv 会自动处理虚拟环境并写入配置文件)
uv add requests

# 3. 写一行代码测试
# (假设你在 main.py 里写了: import requests; print(requests.get('https://github.com').status_code))

# 4. 运行代码(不用手动激活 .venv,uv 会自动处理)
uv run python main.py

案例:如何使用 uv运行一个GitHub 项目?

1. 克隆代码到本地

bash 复制代码
git clone https://github.com/someone/awesome-uv-project.git
cd awesome-uv-project

2. 一键配置环境并安装所有依赖

这一步是协作的核心。执行这个命令后,uv 会读取项目中的声明文件(pyproject.tomluv.lock),在本地极其迅速地为你创建一个 .venv 虚拟环境,并把所有依赖严丝合缝地装好。

bash 复制代码
uv sync

3. 运行项目代码

直接使用 uv run 开头即可,不用管虚拟环境激没激活。

bash 复制代码
# 如果是运行主脚本
uv run python main.py

# 如果是运行项目中附带的工具(比如 pytest 测试)
uv run pytest

4. 💡uv搞定不同Python 版本的方法

如果你接手的项目明确要求使用 Python 3.12,而你电脑里只有老的 3.10,你不需要再去官网痛苦地下载安装包替换。直接执行:

bash 复制代码
uv run --python 3.12 main.py

uv 会在后台全自动帮你下载好隔离的 Python 3.12,并用它来运行代码。

相关推荐
mxwin2 小时前
Unity Shader UV 坐标与纹理平铺Tiling & Offset 深度解析
unity·游戏引擎·shader·uv
寻寻觅觅☆2 小时前
东华OJ-基础题-31-素数(C++)
开发语言·c++·算法
松小白song2 小时前
PID详解+Matlab实现
开发语言·数据结构·matlab
zero15972 小时前
Python 8天极速入门笔记(大模型工程师专用):第八篇-Python 综合实战|完整大模型调用脚本,8 天成果落地
人工智能·python·ai编程·大模型开发
孤魂2332 小时前
机器学习基本概念
python·机器学习
人工干智能2 小时前
科普:<generator object ...>,不是报错!兼谈[x for x in ...]与(x for x in ...)
python
张二娃同学2 小时前
基于 Python 与 Tkinter 的猜数字游戏设计与实现:支持玩家猜数与 AI 反向推理
开发语言·git·python·游戏·开源
jwn9992 小时前
PHP vs 易语言:5大核心区别详解
开发语言·php