Pylint學習


Pylint 提供了簡單的方式來分析 Python 代碼,其高可配置性很容易使一個部門的人員使用統一的代碼風格。 本文將通過理論介紹和示例分析闡述如何 Pylint 來規范 Python 代碼。 

一、Pylint 是什么

Pylint 是一個 Python 代碼分析工具,它分析 Python 代碼中的錯誤,查找不符合代碼風格標准和有潛在問題的代碼。

Pylint 是一個 Python 工具,除了平常代碼分析工具的作用之外,它提供了更多的功能:如檢查一行代碼的長度,變量名是否符合命名標准,一個聲明過的接口是否被真正實現等等。

Pylint 的一個很大的好處是它的高可配置性,高可定制性,並且可以很容易寫小插件來添加功能

如果運行兩次 Pylint,它會同時顯示出當前和上次的運行結果,從而可以看出代碼質量是否得到了改進。 目前在 eclipse 的 pydev 插件中也集成了 Pylint。


二、Pylint 在 Linux 上的安裝

1. 在 Linux 上,首先安裝 Python 的包(高於版本 2.2),並在環境變量 $PATH 中添加 Python 可執行文件的路徑。

2. 下載 Pylint、logilab-astng (version >= 0.14) 和 logilab-common (version >= 0.13) 的包 , 使用 tar zxvf *.tar.gz解壓縮這些包。

3. 依次進入 logilab-astng、logilab-common 和 Pylint 解開的文件夾中,運行命令 Python setup.py install來安裝。

4. 安裝完成后,就可以通過 pylint [options] module_or_package來調用 Pylint 了。

 

 

三、 Pylint 在 Windows 上的安裝

1. 安裝 Python 的包(高於版本 2.2),右鍵單擊桌面上的我的電腦圖標,選擇屬性,高級,環境變量,在 $PATH 中添加 Python 的安裝路徑,如 C:\Python26\。

2. 使用解壓縮工具解壓縮所有的包。

3. 打開命令行窗口,使用 cd依次進入 logilab-astng、logilab-common 和 Pylint 解開的文件夾中,運行命令 python setup.py install來安裝。

4. 安裝完成后,在 Python 的安裝路徑下出現一個 Scripts 文件夾,里面包含一些 bat 腳本,如 pylint.bat 等。

5. 為了使調用 pylint.bat 的時候不需要輸入完整路徑,在 Python 的安裝目錄下創建 pylint.bat 的重定向文件,這是一個純文本文件 pylint.bat,里面包含 pylint.bat 的實際路徑,如:C:\Python26\Scripts\pylint.bat。

6. 安裝完成后,可以通過 pylint [options] module_or_package來調用 Pylint 了。

 

四、 pylint使用

使用 Pylint 對一個模塊 module.py 進行代碼檢查:

1. 進入這個模塊所在的文件夾,運行

pylint [options] module.py

這種調用方式是一直可以工作的,因為當前的工作目錄會被自動加入 Python 的路徑中。

2. 不進入模塊所在的文件夾,運行

pylint [options] directory/module.py

這種調用方式當如下條件滿足的時候是可以工作的:directory 是個 Python 包 ( 比如包含一個 __init__.py 文件 ),或者 directory 被加入了 Python 的搜索路徑中。

 

使用 Pylint 對一個包 pakage 進行代碼檢查:

1. 進入這個包所在文件夾,運行

pylint [options] pakage

 這種調用方式是一直可以工作的,因為當前的工作目錄會被自動加入 Python 的路徑中。

2. 不進入包所在的文件夾,運行

pylint [options] directory/ pakage

 這種情況下當如下條件滿足的時候是可以工作的:directory 被加入了 Python 的路徑中。比如在 Linux 上,export PYTHONPATH=$PYTHONPATH: directory。

此外,對於安裝了 tkinter 包的機器,可以使用命令 pylint-gui打開一個簡單的 GUI 界面,在這里輸入模塊或者包的名字 ( 規則同命令行 ), 點擊 Run,Pylint 的輸出會在 GUI 中顯示。

 

五、 Pylint常用命令行參數

-h,--help : 顯示所有幫助信息。
--generate-rcfile :可以使用 pylint --generate-rcfile 來生成一個配置文件示例。可以使用重定向把這個配置文件保存下來用做以后使用。也可以在前面加上其它選項,使這些選項的值被包含在這個產生的配置文件里。 如:pylint --                   persistent=n --generate-rcfile > pylint.conf, 查看 pylint.conf,可以看到 persistent=no,而不再是其默認值 yes。
--rcfile=<file> :指定一個配置文件。把使用的配置放在配置文件中,這樣不僅規范了自己代碼,也可以方便地和別人共享這些規范。
-i <y_or_n>, --include-ids=<y_or_n> :在輸出中包含 message 的 id, 然后通過 pylint --help-msg=<msg-id>來 查看這個錯誤的詳細信息,這樣可以具體地定位錯誤。
-r <y_or_n>, --reports=<y_or_n> :默認是 y, 表示 Pylint 的輸出中除了包含源代碼分析部分,也包含報告部分。
--files-output=<y_or_n> :將每個 module /package 的 message 輸出到一個以 pylint_module/package. [txt|html] 命名的文件中,如果有 report 的話,輸出到名為 pylint_global.[txt|html] 的文件中。默認是輸出到屏                         幕上不輸出到文件里。
-f <format>, --output-format=<format> :設置輸出格式。可以選擇的格式有 text, parseable, colorized, msvs (visual studio) 和 html, 默認的輸出格式是 text。
--disable-msg= <msg ids> :禁止指定 id 的 message. 比如說輸出中包含了 W0402 這個 warning 的 message, 如果不希望它在輸出中出現,可以使用 --disable-msg= W0402

 


六、Pylint的輸出

Pylint的默認輸出格式是原始文本(raw text)格式 ,可以通過 -f <format>,--output-format=<format> 來指定別的輸出格式如html等等。  

在Pylint的輸出中有如下兩個部分:源代碼分析部分和報告部分

源代碼分析部分
  對於每一個 Python 模塊,Pylint 的結果中首先顯示一些"*"字符 , 后面緊跟模塊的名字,然后是一系列的 message, message 的格式如下: __MESSAGE_TYPE: LINE_NUM:[OBJECT:] MESSAGE__ MESSAGE_TYPE 有如下幾種:

(C) 慣例。違反了編碼風格標准 
(R) 重構。寫得非常糟糕的代碼。
(W) 警告。某些 Python 特定的問題。 
(E) 錯誤。很可能是代碼中的錯誤。
(F) 致命錯誤。阻止 Pylint 進一步運行的錯誤。

 

報告部分:

在源代碼分析結束后面,會有一系列的報告,每個報告關注於項目的某些方面,如每種類別的 message 的數目,模塊的依賴關系等等。

具體來說,報告中會包含如下的方面: 檢查的 module 的個數。 對於每個 module, 錯誤和警告在其中所占的百分比。

比如有兩個 module A 和 B, 如果一共檢查出來 4 個錯誤,1 個錯誤是在 A 中,3 個錯誤是在 B 中,那么 A 的錯誤的百分比是 25%, B 的錯誤的百分比是 75%。 錯誤,警告的總數量。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM