Python的工具生态系统在过去两年经历了重大演变。许多开发者学习的工具——pip、virtualenv、flake8、black——已经被更快、更集成的替代品所取代。以下是当前状态。
uv:pip的替代品
uv(来自Astral)是一个用Rust编写的Python包安装器和解析器,设计为pip和pip-tools的即插即用替代品,速度快10到100倍。主要优势:正确处理冲突的依赖解析(pip的解析器出了名的差)、自动虚拟环境创建(uv venv)、锁文件支持(uv.lock——确定性、可重复安装),以及不污染全局Python环境安装全局工具的uv tool命令。对于新项目:uv init设置带pyproject.toml的项目;uv add package安装依赖;uv run script.py在托管环境中运行脚本。uv正在成为生产Python项目的标准。
ruff:Linter和格式化器
ruff(也来自Astral)是一个用Rust编写的Python linter和代码格式化器,用单个工具取代flake8、black、isort和pyupgrade,运行速度快10到100倍。一个命令替代四个:用于linting的ruff check .,用于格式化的ruff format .。在pyproject.toml或ruff.toml中配置。对于新项目,ruff应该是唯一的linting/格式化依赖——不再有理由维护单独的工具堆栈。
pyproject.toml:中央配置
现代Python项目使用pyproject.toml作为构建系统、依赖项、工具配置(ruff、mypy、pytest设置都在一个文件中)的单一配置文件。这替代了使Python项目根目录凌乱的setup.py、setup.cfg、requirements.txt、.flake8、.isort.cfg和其他文件的分散。
仍然工作良好的内容
pytest仍然是测试标准。mypy或pyright用于类型检查。FastAPI用于Web API。SQLAlchemy用于数据库ORM。Python生态系统在库层面的稳定性很高——工具层发生了重大变化,库本身成熟且稳定。




