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

现代化Python工具:uv、Ruff、Pyright、Rich(只讲重点版)

课程视频:【Python/uv】迈向AI的第零步!现代化Python工具指南_哔哩哔哩_bilibili

github仓库:GitHub - Wood-Q/ModernPython: 现代化python入门教程 · GitHub

notion笔记:https://mirage-thought-d06.notion.site/Python现代化工具


基础:ide(代码编辑器)

VSCode

  • 官网:https://code.visualstudio.com/

底层: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常用命令

uv venv # 创建虚拟环境 (它会默认创建在 .venv 目录) .venv\Scripts\activate # 激活虚拟环境(如果是 linux系统,则为 .venv/bin/activate)

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 列表里会自动加上对应的包和版本

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]:这个表几乎涵盖了所有需要声明的项目信息
[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.工具名] 的形式存在

# --- 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

或命令行启用:

ruff check --preview . ruff format --preview .
  • 细粒度规则控制(Per-File / Per-Line )
# 忽略特定文件/目录 [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 双引号

最佳实践

  1. 统一使用pyproject.toml进行配置
    将 Ruff 的所有配置集中在pyproject.toml[tool.ruff]表中

  2. 明确目标 Python 版本 (target-version)

    [tool.ruff] target-version = "py311" # 明确项目使用的 Python 版本
  3. 从一个稳健的基础规则集开始
    不要一开始就想着启用所有规则。一个理智的起点是启用那些被广泛接受、能显著提升代码质量的核心规则集

    [tool.ruff] # E: pycodestyle 错误, F: Pyflakes 逻辑错误, I: isort 导入排序, UP: pyupgrade 语法升级 select = ["E", "F", "I", "UP"]
  4. 拥抱自动修复
    ruff check . --fix作为常规操作。Ruff 的自动修复非常安全可靠,能处理掉大量琐碎的格式和代码问题


类型:Pyright(静态类型检查器)

集成在 VSCode 的 Pylance 插件里:

在设置里搜 Type Checking Mode,可以配置 Basic、Standard、Strict 三档(一般用 Basic 即可):


守门:pre-commit(git相关)

视频里没介绍,就略了,具体看 notion 笔记吧


美化:Rich(Python美化堆栈报错)

安装:

uv pip install rich

如何美化堆栈报错?在文件最前面写上:

from rich.traceback import install install()
http://www.jsqmd.com/news/1365843/

相关文章:

  • 2026年08月:古建长廊工程服务公司综合能力观察 - 卓企推荐
  • 5分钟极速指南:免费解锁B站大会员4K视频离线下载终极方案
  • GPT-5.6 Luna降价与用量激增:成本验证与工程化应对策略
  • eBPF开发者大会实战指南:从内核编程到性能优化
  • Unity体素世界构建:从Chunk分块到Greedy Meshing的Minecraft式实现
  • 2024年企业破局关键:033340网站建设与管理从零基础到高转化实战指南
  • 开源智能体openClaw企业IM部署实战指南
  • 题解:洛谷 P1090 合并果子
  • ROS2参数系统详解:分布式配置与高效管理
  • 2026衡阳新房装修公司推荐:口碑品牌怎么选? - 品牌优企推荐
  • 2026加拿大留学移民中介全链路评测:学签转PR全程对标,星旅途移民99.3分登顶 - 互联网科技品牌测评
  • 北京AI搜索优化公司|2026年AI-GEO优化服务商选择指南(附FAQ)盘点
  • Godot引擎多语言本地化实战:从零构建全球游戏的技术方案
  • 慕朗家居北美黑胡桃五大系列成品整装定制 - GrowthUME
  • 告别遥控器困境:TV Bro如何让智能电视浏览网页变得轻松愉快
  • 【C++初阶】速过C++语法基础
  • 如何选择可靠的linux核心板?浙江启扬智能科技有限公司深度解析 - 品牌报告
  • 2026加拿大移民中介**评测:持牌资质+全案能力双对标,星旅途移民99.2分登顶 - 互联网科技品牌测评
  • AI视频生成实战:从创意到成片的低成本广告制作全流程
  • 3分钟掌握音乐格式转换技巧:解锁加密音频的完整指南
  • Legacy iOS Kit技术深度解析:iOS设备降级与系统恢复的底层实现原理
  • 2026 年现阶段越秀值得关注的美甲移印机生产厂家哪家好,美甲店小姐姐靠这玩意儿,半天能接二十个单还不磨手? - 企业推荐管【认证】
  • WindowsCleaner终极指南:如何快速彻底解决C盘空间不足问题
  • 抖音批量下载终极指南:如何高效获取无水印短视频内容
  • 宝塔面板快速部署Redis与Node.js集成开发实战指南
  • 佛山性价比高的企业画册哪个靠谱 - GrowthUME
  • 2026年8月温州代理记账公司推荐 - 品牌优企推荐
  • 运动团建行业深度解析:体验式教育赋能企业组织效能的理论与实践 - GrowthUME
  • Django 路由组织、名称空间与虚拟环境
  • 暗黑破坏神2存档编辑器终极指南:免费可视化修改工具完全手册