Python项目Linter、Formatter和Github-Actions配置

💡 原文中文,约1200字,阅读约需3分钟。
📝

内容提要

讨论了Python项目的配置问题,包括Linter、Formatter和Github-Actions的配置。介绍了PyCharm自带的Linter符合PEP8规范,也可以使用flake8和pylint。项目配置方面,使用Pre-Commit和PyProject进行配置。依赖配置方面,使用requirements.txt和requirements-dev.txt。在Github Actions中使用black和isort进行CI。

🔎

延伸解读

工具链分工:Linter 与 Formatter 各司其职

文章将 Linter 和 Formatter 分开处理:Linter 负责代码规范检查,PyCharm 自带工具符合 PEP8,也可选用 flake8 或 pylint;Formatter 则直接使用 isort 和 black 完成导入排序与代码格式化。这种分工让检查与格式化互不干扰,便于在 CI 中分别执行。

Pre-Commit 与 PyProject 的协同配置

项目通过 .pre-commit-config.yaml 集成 black 和 isort 的钩子,并在 pyproject.toml 中设置 isort 的 profile 为 black,使两者规则兼容。这样在提交前自动格式化,减少风格冲突。依赖方面,requirements.txt 定义主依赖,requirements-dev.txt 通过 -r 引入主依赖并追加开发工具,结构清晰。

GitHub Actions 中的多版本 CI 实践

CI 工作流在 push、pull_request 和手动触发时运行,使用矩阵策略覆盖 Python 3.10、3.11、3.12,并缓存 pip 依赖以加速安装。安装 requirements-dev.txt 后,通过 pre-commit/action 执行 lint 检查。这种设计能在多版本环境下验证代码风格一致性,但未包含测试步骤,需注意补充。

❓

Q&A

Python项目中如何配置Linter?

可以使用PyCharm自带的Linter,符合PEP8规范,也可以选择flake8和pylint。

Formatter在Python项目中有哪些选择?

可以直接使用isort和black作为Formatter。

如何在Python项目中配置依赖?

依赖配置可以使用requirements.txt和requirements-dev.txt文件。

Github Actions如何与Python项目集成?

在Github Actions中,可以使用black和isort进行持续集成(CI)。

如何使用Pre-Commit进行项目配置?

项目配置可以通过.pre-commit-config.yaml文件来使用Pre-Commit进行管理。

PyProject在Python项目中有什么作用?

PyProject用于项目配置,通常包含pyproject.toml文件。

🏷️

标签

➡️

继续阅读