flake8+black+isort如何做代码质量检查
时间: 2023-12-30 22:03:03 浏览: 191
代码质量自检工具
flake8、black和isort是三个不同的Python代码质量检查工具,可以通过组合使用来提高代码质量。
- flake8可以检查代码是否符合PEP 8规范,包括变量命名、代码缩进、代码注释等方面。
- black可以自动对Python代码进行格式化,使得代码风格统一,易于阅读。
- isort可以自动对Python代码进行导入排序,遵循PEP 8规范,使得导入语句更加清晰、易于管理。
把这三个工具结合起来使用,可以极大地提高代码质量,并且可以通过配置文件来定制自己的检查规则和检查方式。
步骤如下:
1. 安装三个工具:
```
pip install flake8 black isort
```
2. 创建配置文件:
在项目根目录下创建以下文件:
- .flake8:flake8配置文件
- pyproject.toml:black和isort配置文件
.flake8文件内容:
```
[flake8]
max-line-length = 88
exclude = .git,__pycache__,build,dist
extend-ignore = E203
```
pyproject.toml文件内容:
```
[tool.black]
line-length = 88
target-version = ['py39', 'py38', 'py37', 'py36']
exclude = '''/(
\.git
| \.hg
| \.mypy_cache
| \.pytest_cache
| \.tox
| \.venv
| _build
| buck-out
| build
| dist
)/'''
[tool.isort]
line_length = 88
multi_line_output = 3
include_trailing_comma = true
force_grid_wrap = 0
use_parentheses = true
ensure_newline_before_comments = true
skip_glob = "**/node_modules/**"
```
3. 运行检查:
进入要检查的Python项目目录下,运行以下命令:
```
flake8 . # 检查代码规范
black . # 格式化代码
isort . # 导入语句排序
```
4. 自动化检查:
可以使用pre-commit工具来自动化代码检查,每次提交代码时自动运行以上三个命令进行检查和格式化,避免不规范的代码进入代码仓库,提高代码质量。需要在项目根目录下创建pre-commit配置文件:
```
repos:
- repo: https://github.com/psf/black
rev: 21.8b0
hooks:
- id: black
language_version: python3.9
- repo: https://github.com/PyCQA/flake8
rev: 3.9.2
hooks:
- id: flake8
- repo: https://github.com/pycqa/isort
rev: 5.9.1
hooks:
- id: isort
```
安装pre-commit:
```
pip install pre-commit
```
安装完毕后,在项目根目录下运行以下命令进行初始化:
```
pre-commit install
```
每次提交代码时,pre-commit会自动运行以上三个命令进行检查和格式化。
阅读全文