装依赖要 pip 加 venv 两套工具?
4条命令,管好
Python项目
uv init · uv add · uv run · uv sync
📦 3 Parts + Conclusion
👉 滑动
这是基础篇第3篇,今天把项目管理工具 uv 用明白
记住4条命令,之后每篇代码都用这套流程跑
这是基础篇第3篇。前两篇我们装好了Python、写下了第一行代码,又学会了变量、判断和循环。今天做一件顺手的事:把项目管理工具 uv 用明白。
看完这篇,你能自己建一个 Python 项目,往里加第三方库,然后运行里面的代码。整个流程只要记住4条命令:uv init、uv add、uv run、uv sync。下面每一条我都实际敲过,你照着做,结果应该和我一样。
电脑里装好了 uv
上一篇我们用 uv 装过 Python,说明它已经在你的电脑上了。
会打开终端
Windows 上叫 PowerShell,知道怎么执行命令就行。
会运行 .py 文件
不确定的话,先输入下面这行确认一下:
能看到类似uv 0.11.7的输出,就说明环境 OK。
先说 uv 是什么。官方一句话:一个用 Rust 写的 Python 包和项目管理器。听着绕,翻译过来就是:
包管理
帮你下载、安装、卸载 Python 的第三方库。
项目管理
帮你记录这个项目用了哪些库、什么版本,别人拿到项目一跑就能还原环境。
以前这两件事要装好几个工具:pip管包、virtualenv管环境、poetry管项目。uv 一个命令全包了,而且速度比 pip 快很多。
它的思路不复杂:用一个pyproject.toml文件记录项目信息,用一个uv.lock文件锁死所有依赖的精确版本。这样你的项目在任何电脑上都能还原出一模一样的环境。
— pyproject.toml 记配置,uv.lock 锁版本,环境就一致了
打开终端,进到一个你准备放代码的目录,执行:
uv init --python 3.14 hello-uv
cd hello-uv
uv init 会创建一个新文件夹 hello-uv,里面自动生成这些文件:
hello-uv/
├── .gitignore # git忽略规则
├── .python-version # 记录Python版本
├── pyproject.toml # 项目配置文件(核心)
├── README.md
└── main.py # 入口代码
打开 pyproject.toml,你会看到类似这样的内容:
[project]
name = "hello-uv"
version = "0.1.0"
requires-python = ">=3.14"
dependencies = []
现在依赖还是空的,下一步我们加一个。
执行:
requests 是 Python 最常用的 HTTP 请求库。命令执行完,注意看两件事:
1pyproject.toml 里多了一行 "requests>=2.34.2"
2目录里多了 uv.lock 和 .venv 文件夹
.venv 是虚拟环境,装着这个项目专用的 Python 和依赖,和其他项目互不干扰。uv.lock 是把所有依赖的精确版本锁住的锁文件,以后不管谁运行 uv sync,都能装出一模一样的版本。
把 main.py 改成这样(或新建一个 demo.py):
import requests
resp = requests.get("https://httpbin.org/get")
print("状态码:", resp.status_code)
print("请求地址:", resp.json().get("url"))
然后运行:
你会看到类似这样的输出:
状态码: 200
请求地址: https://httpbin.org/get
关键在 uv run:它会自动用项目里的 .venv 环境来跑,不需要你先手动激活环境。
想知道项目装了哪些依赖,用 uv tree:
输出是一棵依赖树,requests 下面还挂着它依赖的几个小库:
hello-uv v0.1.0
└── requests v2.34.2
├── certifi v2026.7.22
├── charset-normalizer v3.5.1
├── idna v3.19
└── urllib3 v2.7.0
想移除依赖,用 uv remove:
想按锁文件重新装一遍环境(比如刚 clone 了别人的项目),用 uv sync:
上面所有命令我都实际跑过,结果汇总:
| | |
|---|
| uv init --python 3.14 hello-uv | | |
| | |
| | |
| | |
| | |
| | |
!uv 不是命令 🕳
如果提示找不到 uv,说明安装那步没走完。Windows 上一般用 irm https://astral.sh/uv/install.ps1 | iex 安装。
!命令输出红色一片 🕳
PowerShell 会把 uv 的正常输出当成错误显示(因为它走 stderr),其实 Resolved、Installed 这些都是在正常工作,不用慌。
!import requests 报错 ModuleNotFoundError 🕳
多半是没在项目目录里跑,或者用了系统 Python 而不是 uv run。记住:项目里的代码一律用 uv run python 开头。
!公司网络首次解析慢 🕳
第一次 uv add 要联网下载依赖,可能等一会;解析过一次后走本地缓存,之后就很快了。
uv 能做的事远不止这些:它可以直接安装指定版本的 Python(uv python install 3.13)、可以运行工具类软件包、支持 workspace 管理多个子项目、还提供和 pip 兼容的接口。这些后面用到的时候再展开,现在先把4条命令练熟。
今天你学会了用 uv 管理 Python 项目:
uv init 建项目
自动生成 pyproject.toml
uv add 加依赖
自动建 .venv 并生成 uv.lock
uv tree / remove / sync
看依赖、删依赖、还原环境
自检清单
1能说出 pyproject.toml 和 uv.lock 各是干什么的
2能新建一个项目并跑通 uv run python demo.py
3遇到 ModuleNotFoundError 知道先检查是不是没走 uv run
这套流程后面每篇都会用到,先练熟它。
我是飞污熊,热衷于分享Python编程和AI技术,大道至简。
既然看到这里了,如果觉得有用,随手点个赞、在看、转发三连吧。
THANKS FOR READING