Python 進(jìn)階 — Flake8 靜態(tài)代碼檢查工具
目錄

文章目錄
目錄
錯(cuò)誤返回碼
安裝
使用
插件
Flake8 是由 Python 官方發(fā)布的一款靜態(tài)代碼檢查工具(https://pypi.python.org/pypi/flake8/),相對(duì)于 PyLint 而言,F(xiàn)lake8 的檢查規(guī)則靈活,支持集成額外插件,擴(kuò)展性強(qiáng)。
Flake8 是對(duì)下面 3 個(gè)工具的封裝:
PyFlakes:靜態(tài)檢查 Python 代碼邏輯錯(cuò)誤的工具。
PEP8:靜態(tài)檢查 PEP8 編碼風(fēng)格的工具。
NedBatchelder’s McCabe:靜態(tài)分析Python代碼復(fù)雜度的工具。
錯(cuò)誤返回碼
Flake8 的基礎(chǔ)錯(cuò)誤返回碼一共有 3 類(lèi):
Fxxx:PyFlakes 返回的代碼邏輯錯(cuò)誤 Error。
Exxx、Wxxx:PEP8 返回的編碼規(guī)范 Error 和 Warning。
C9xx:McCabe 返回的代碼復(fù)雜度。通過(guò) Flake8 的 --max-complexity 選項(xiàng)可以設(shè)定 McCabe 的函數(shù)復(fù)雜度數(shù)值,高出則告警。Flake8 建議值為 12。
安裝
$ python -m pip install flake8 $ flake8 –help
1
2
使用
直接使用:
$ cd /project_path/ $ flake8 .
1
2
通常的 flake8 會(huì)集成到 tox 一同更方便使用:
[tox] minversion = 2.0 envlist = pep8 [testenv:pep8] commands = flake8
1
2
3
4
5
6
7
展示特定錯(cuò)誤碼:
# e.g. 以 E 開(kāi)頭 flake8 --select E project_path # e.g. H233 flake8 --select H233 project_path
1
2
3
4
5
忽略特定錯(cuò)誤碼:
# e.g. H233 flake8 --ignore H233 project_path # e.g. 忽略檢查 test1.py 文件 flake8 --exclude project_path/path2/test1.py project_path
1
2
3
4
5
輸出修改格式:
flake8 --format=%(path)s::%(row)d,%(col)d::%(code)s::%(text)s project_path
1
插件
Flake8 相比其他 Python 靜態(tài)代碼檢查工具的優(yōu)勢(shì)在于其良好的擴(kuò)展性,以下介紹幾款比較流行的插件:
hacking:根據(jù) OpenStack Style Guidelines 產(chǎn)生,官方文檔:https://pypi.python.org/pypi/hacking,錯(cuò)誤返回碼以 H 開(kāi)頭。
pip install hacking
1
flake8-chart:可視化插件,將 flake8 的分析結(jié)果轉(zhuǎn)化為圖形。
flake8 --statistics shadowtest |flake8chart--chart-type=BAR --chart-output=shadow.svg
1
Python 代碼檢查 CodeCheck
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。