课程视频:【Python/uv】迈向AI的第零步!现代化Python工具指南_哔哩哔哩_bilibili
github仓库:GitHub - Wood-Q/ModernPython: 现代化python入门教程 · GitHub
notion笔记:https://mirage-thought-d06.notion.site/Python现代化工具
基础:ide(代码编辑器)
VSCode
底层:uv(快速Python包管理器)
解决Python的依赖管理,且能以极快的速度安装包(pip的高性能替代)
官方文档:uv
-
安装(Windows系统),在 PowerShell 里输入:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
- 把 C:\Users\11842\.local\bin 编辑到环境变量
- 放进环境变量之后,每次打开一个PowerShell,它就会自动把 uv 加载进来
uv常用命令
python
uv venv # 创建虚拟环境 (它会默认创建在 .venv 目录)
.venv\Scripts\activate # 激活虚拟环境(如果是 linux系统,则为 .venv/bin/activate)
bash
uv venv my-env -p 3.11 # 指定环境名字和python版本
uv venv -p python@3.11 # 使用 python3.11 创建 .venv
# 仍需激活环境
uv init # 初始化一个uv项目,会自动生成 main.py、pyproject.toml、README.md
uv pip install xxx # 装包(放到全局缓存里),速度比pip快很多
uv add xxx # 把安装包从全局缓存拉到具体项目里
uv add 之后,pyproject.toml 文件的 dependencies 列表里会自动加上对应的包和版本
bash
uv sync # 如果有拉取一个uv的项目(git clone xxx.git),直接sync即可配置好环境
uv pip freeze > requirements.txt # 生成一个包含所有已安装包及其精确版本的列表,格式与 pip freeze 的输出相同,常用于生成 requirements.txt 文件
uv pip install -r requirements.txt # 按照 requirements.txt 文件中列出的所有依赖包及其版本要求,批量安装 Python 库
pyproject.toml(配置文件)
安装下面这个插件,toml 文件就会语法高亮了

pyproject.toml 是一个统一的 Python 项目配置文件(静态的、声明性)
文件结构:
- build-system:想让别人可以通过 pip install xxx 来下载我的包,才需要填这个,告诉 pip 如何构建这个包
- project:这个表几乎涵盖了所有需要声明的项目信息
bash
[project]
name = "my-package" # 项目名,发布到PyPI时使用
version = "0.1.0" # 项目版本
description = "A short description of my project." # 项目简短描述
readme = "README.md" # 指定README文件
requires-python = ">=3.9" # 要求的Python版本
# --- 核心依赖,即 install_requires ---
dependencies = [
"httpx",
"rich>=13.0.0",
'tomli; python_version < "3.11"', # 可以包含环境标记
]
- tool.\*:统一配置所有开发工具。每个工具都可以定义自己的配置表,以 tool.工具名 的形式存在
bash
# --- ruff (linter/formatter) 的配置 ---
[tool.ruff]
line-length = 88 # 设置行长限制
target-version = "py311" # 设定目标Python版本以应用相应规则
[tool.ruff.lint]
# 选择要启用的规则集,E=pycodestyle错误, F=pyflakes, I=isort
select = ["E", "F", "I"]
# 忽略特定的规则
ignore = ["E501"]
和 conda 的区别

语法:Ruff(快速Python语法检查器)
作用:配置编写 Python 项目所需要遵循的语法规则
- 安装插件(可进行语法提示):
-
安装:
uv tool install ruff
作用
限制一行的长度、自动移除没有使用但导入的包或变量、自动排序 import 语句,等等
常用操作
|---------------------|---------------------------------------|
| 任务 | 命令 |
| 格式化我的代码 | ruff format . |
| 检查代码问题并自动修复 | ruff check . --fix |
| 在 CI/CD 中验证格式 | ruff format . --check |
| 在 CI/CD 中检查代码质量 | ruff check . |
| 开发时实时检查 | ruff check . --watch |
| 搞不清某条规则是什么意思 | ruff rule <RULE_CODE> |
| 清理缓存 | ruff cache clean |
| 终极清理 | ruff format . && ruff check . --fix |
进阶配置
在 pyproject.toml 里配置:
-
启用预览功能:Ruff 的许多强大功能(如类型感知 lint、更智能的自动修复)目前处于 preview 模式,需显式启用
[tool.ruff]
preview = true
或命令行启用:
bash
ruff check --preview .
ruff format --preview .
- 细粒度规则控制(Per-File / Per-Line )
bash
# 忽略特定文件/目录
[tool.ruff.lint]
extend-exclude = [
"migrations/",
"legacy_code.py",
"scripts/temp_*.py"
]
# 为特定文件启用/禁用规则
[[tool.ruff.lint.per-file-ignores]]
"tests/**.py" = ["S101", "D"] # 忽略 asserts 和 docstring 规则
"scripts/*.py" = ["T20"] # 忽略 print 警告
pyproject.toml 配置
lint.select 是规则集
- E501是行长的规则,如 line-length=10(行长不能超过10)
- exclude 表示以上规则忽略特定文件
- format 里 single 单引号,double 双引号
最佳实践
-
统一使用
pyproject.toml进行配置将 Ruff 的所有配置集中在
pyproject.toml的[tool.ruff]表中 -
明确目标 Python 版本 (
target-version)bash[tool.ruff] target-version = "py311" # 明确项目使用的 Python 版本 -
从一个稳健的基础规则集开始
不要一开始就想着启用所有规则。一个理智的起点是启用那些被广泛接受、能显著提升代码质量的核心规则集
bash[tool.ruff] # E: pycodestyle 错误, F: Pyflakes 逻辑错误, I: isort 导入排序, UP: pyupgrade 语法升级 select = ["E", "F", "I", "UP"] -
拥抱自动修复
将
ruff check . --fix作为常规操作。Ruff 的自动修复非常安全可靠,能处理掉大量琐碎的格式和代码问题
类型:Pyright(静态类型检查器)
集成在 VSCode 的 Pylance 插件里:
在设置里搜 Type Checking Mode,可以配置 Basic、Standard、Strict 三档(一般用 Basic 即可):
守门:pre-commit(git相关)
视频里没介绍,就略了,具体看 notion 笔记吧
美化:Rich(Python美化堆栈报错)
安装:
bash
uv pip install rich
**如何美化堆栈报错?**在文件最前面写上:
python
from rich.traceback import install
install()