Pyre:Facebook 开源的 Python 类型检查器
Pyre:Facebook 开源的 Python 类型检查器
pyre-check 在 GitHub 上已经拿到 7,165 Star 了。
Facebook 开源了这个工具,专门做一件事:给 Python 代码做静态类型检查。它兼容 PEP 484 标准,能增量分析百万行级别的代码库,开发者写代码的同时就能拿到类型错误反馈。

1、这玩意儿是干嘛的
Pyre 是一个高性能的 Python 类型检查器。它的核心能力就两点:检查类型注解是否合规,以及在代码变更时增量更新检查结果。
普通类型检查器每次都要扫完整项目,项目大了就慢。Pyre 的做法是启动一个守护进程,监听文件系统变化,只检查改动的部分。第一次运行会慢一些,后续调用基本是即时的。
除了类型检查,Pyre 还内置了 Pysa。这是一个专注于安全的静态分析工具,能追踪 Python 应用中的数据流,帮开发者发现潜在的安全漏洞。Pysa 也以 GitHub Action 的形式发布在 Marketplace 上,CI 流程里可以直接集成。

2、安装需要什么
环境要求不高:Python 3.9 以上,再加一个 watchman。macOS 用户用 homebrew 就能搞定:
brew install python3 watchman
Ubuntu、Debian 系列先装 Python,再用 homebrew 装 watchman:
sudo apt-get install python3 python3-pip python3-venv
brew install watchman
Facebook 测试过的系统包括 Ubuntu 18.04.5 LTS、CentOS 7,以及 macOS 10.11 及以上版本。
3、怎么用起来
新建项目目录,创建虚拟环境,然后装包:
mkdir my_project && cd my_project
python3 -m venv ~/.venvs/venv
source ~/.venvs/venv/bin/activate
pip install pyre-check
装完之后初始化配置:
pyre init
这条命令会在项目目录下生成 .pyre_configuration 和 .watchmanconfig,默认配置先接受,后面随时可以改。
初始化完成就能跑检查了。写个测试文件故意放个类型错误:
echo "i: int = 'string'" > test.py
pyre
Pyre 会输出具体的类型不匹配信息,包括行号、列号和错误描述。守护进程会在后台运行,之后每次改代码,Pyre 都会自动增量检查,速度比第一次快很多。
详细的文档和进阶配置可以访问 pyre-check.org。
4、适合哪些人用
- 维护大型 Python 项目、需要类型安全保障的团队
- 对代码质量有要求、想渐进式引入类型注解的开发者
- 需要安全审计、想排查数据流风险的工程团队
另外 Facebook 已经推出了下一代类型检查器 Pyrefly,长期用的话可以关注一下这个新项目。
全审计、想排查数据流风险的工程团队
另外 Facebook 已经推出了下一代类型检查器 Pyrefly,长期用的话可以关注一下这个新项目。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)