一、Pylint 是什么
Pylint 是一個(gè) Python 代碼分析工具,它分析 Python 代碼中的錯(cuò)誤,查找不符合代碼風(fēng)格標(biāo)準(zhǔn)和有潛在問(wèn)題的代碼。
Pylint 是一個(gè) Python 工具,除了平常代碼分析工具的作用之外,它提供了更多的功能:如檢查一行代碼的長(zhǎng)度,變量名是否符合命名標(biāo)準(zhǔn),一個(gè)聲明過(guò)的接口是否被真正實(shí)現(xiàn)等等。
Pylint 的一個(gè)很大的好處是它的高可配置性,高可定制性,并且可以很容易寫小插件來(lái)添加功能。
如果運(yùn)行兩次 Pylint,它會(huì)同時(shí)顯示出當(dāng)前和上次的運(yùn)行結(jié)果,從而可以看出代碼質(zhì)量是否得到了改進(jìn)。 目前在 eclipse 的 pydev 插件中也集成了 Pylint。
二、Pylint 在 Linux 上的安裝
1. 在 Linux 上,首先安裝 Python 的包(高于版本 2.2),并在環(huán)境變量 $PATH 中添加 Python 可執(zhí)行文件的路徑。
2. 下載 Pylint、logilab-astng (version >= 0.14) 和 logilab-common (version >= 0.13) 的包 , 使用 tar zxvf *.tar.gz解壓縮這些包。
3. 依次進(jìn)入 logilab-astng、logilab-common 和 Pylint 解開的文件夾中,運(yùn)行命令 Python setup.py install來(lái)安裝。
4. 安裝完成后,就可以通過(guò) pylint [options] module_or_package來(lái)調(diào)用 Pylint 了。
三、 Pylint 在 Windows 上的安裝
1. 安裝 Python 的包(高于版本 2.2),右鍵單擊桌面上的我的電腦圖標(biāo),選擇屬性,高級(jí),環(huán)境變量,在 $PATH 中添加 Python 的安裝路徑,如 C:\Python26\。
2. 使用解壓縮工具解壓縮所有的包。
3. 打開命令行窗口,使用 cd依次進(jìn)入 logilab-astng、logilab-common 和 Pylint 解開的文件夾中,運(yùn)行命令 python setup.py install來(lái)安裝。
4. 安裝完成后,在 Python 的安裝路徑下出現(xiàn)一個(gè) Scripts 文件夾,里面包含一些 bat 腳本,如 pylint.bat 等。
5. 為了使調(diào)用 pylint.bat 的時(shí)候不需要輸入完整路徑,在 Python 的安裝目錄下創(chuàng)建 pylint.bat 的重定向文件,這是一個(gè)純文本文件 pylint.bat,里面包含 pylint.bat 的實(shí)際路徑,如:C:\Python26\Scripts\pylint.bat。
6. 安裝完成后,可以通過(guò) pylint [options] module_or_package來(lái)調(diào)用 Pylint 了。
四、 pylint使用
使用 Pylint 對(duì)一個(gè)模塊 module.py 進(jìn)行代碼檢查:
1. 進(jìn)入這個(gè)模塊所在的文件夾,運(yùn)行
pylint [options] module.py
這種調(diào)用方式是一直可以工作的,因?yàn)楫?dāng)前的工作目錄會(huì)被自動(dòng)加入 Python 的路徑中。
2. 不進(jìn)入模塊所在的文件夾,運(yùn)行
pylint [options] directory/module.py
這種調(diào)用方式當(dāng)如下條件滿足的時(shí)候是可以工作的:directory 是個(gè) Python 包 ( 比如包含一個(gè) __init__.py 文件 ),或者 directory 被加入了 Python 的搜索路徑中。??
使用 Pylint 對(duì)一個(gè)包 pakage 進(jìn)行代碼檢查:
1. 進(jìn)入這個(gè)包所在文件夾,運(yùn)行
pylint [options] pakage
?這種調(diào)用方式是一直可以工作的,因?yàn)楫?dāng)前的工作目錄會(huì)被自動(dòng)加入 Python 的路徑中。
2. 不進(jìn)入包所在的文件夾,運(yùn)行
pylint [options] directory/ pakage
?這種情況下當(dāng)如下條件滿足的時(shí)候是可以工作的:directory 被加入了 Python 的路徑中。比如在 Linux 上,export PYTHONPATH=$PYTHONPATH: directory。
此外,對(duì)于安裝了 tkinter 包的機(jī)器,可以使用命令 pylint-gui打開一個(gè)簡(jiǎn)單的 GUI 界面,在這里輸入模塊或者包的名字 ( 規(guī)則同命令行 ), 點(diǎn)擊 Run,Pylint 的輸出會(huì)在 GUI 中顯示。
五、 Pylint常用命令行參數(shù)
-h,--help : 顯示所有幫助信息。
--generate-rcfile :可以使用 pylint --generate-rcfile 來(lái)生成一個(gè)配置文件示例。可以使用重定向把這個(gè)配置文件保存下來(lái)用做以后使用。也可以在前面加上其它選項(xiàng),使這些選項(xiàng)的值被包含在這個(gè)產(chǎn)生的配置文件里。 如:pylint -- persistent=n --generate-rcfile > pylint.conf, 查看 pylint.conf,可以看到 persistent=no,而不再是其默認(rèn)值 yes。
--rcfile=:指定一個(gè)配置文件。把使用的配置放在配置文件中,這樣不僅規(guī)范了自己代碼,也可以方便地和別人共享這些規(guī)范。
-i, --include-ids= :在輸出中包含 message 的 id, 然后通過(guò) pylint --help-msg= 來(lái) 查看這個(gè)錯(cuò)誤的詳細(xì)信息,這樣可以具體地定位錯(cuò)誤。
-r, --reports= :默認(rèn)是 y, 表示 Pylint 的輸出中除了包含源代碼分析部分,也包含報(bào)告部分。
--files-output=:將每個(gè) module /package 的 message 輸出到一個(gè)以 pylint_module/package. [txt|html] 命名的文件中,如果有 report 的話,輸出到名為 pylint_global.[txt|html] 的文件中。默認(rèn)是輸出到屏 幕上不輸出到文件里。
-f, --output-format= :設(shè)置輸出格式。可以選擇的格式有 text, parseable, colorized, msvs (visual studio) 和 html, 默認(rèn)的輸出格式是 text。
--disable-msg=:禁止指定 id 的 message. 比如說(shuō)輸出中包含了 W0402 這個(gè) warning 的 message, 如果不希望它在輸出中出現(xiàn),可以使用 --disable-msg= W0402
六、Pylint的輸出
Pylint的默認(rèn)輸出格式是原始文本(raw text)格式 ,可以通過(guò) -f
在Pylint的輸出中有如下兩個(gè)部分:源代碼分析部分和報(bào)告部分。
源代碼分析部分:
對(duì)于每一個(gè) Python 模塊,Pylint 的結(jié)果中首先顯示一些"*"字符 , 后面緊跟模塊的名字,然后是一系列的 message, message 的格式如下: __MESSAGE_TYPE: LINE_NUM:[OBJECT:] MESSAGE__ MESSAGE_TYPE 有如下幾種:
(C) 慣例。違反了編碼風(fēng)格標(biāo)準(zhǔn)
(R) 重構(gòu)。寫得非常糟糕的代碼。
(W) 警告。某些 Python 特定的問(wèn)題。
(E) 錯(cuò)誤。很可能是代碼中的錯(cuò)誤。
(F) 致命錯(cuò)誤。阻止 Pylint 進(jìn)一步運(yùn)行的錯(cuò)誤。
?
報(bào)告部分:
在源代碼分析結(jié)束后面,會(huì)有一系列的報(bào)告,每個(gè)報(bào)告關(guān)注于項(xiàng)目的某些方面,如每種類別的 message 的數(shù)目,模塊的依賴關(guān)系等等。
具體來(lái)說(shuō),報(bào)告中會(huì)包含如下的方面: 檢查的 module 的個(gè)數(shù)。 對(duì)于每個(gè) module, 錯(cuò)誤和警告在其中所占的百分比。
比如有兩個(gè) module A 和 B, 如果一共檢查出來(lái) 4 個(gè)錯(cuò)誤,1 個(gè)錯(cuò)誤是在 A 中,3 個(gè)錯(cuò)誤是在 B 中,那么 A 的錯(cuò)誤的百分比是 25%, B 的錯(cuò)誤的百分比是 75%。 錯(cuò)誤,警告的總數(shù)量。
python中pylint使用方法
在Eclipse IDE 下, 打開 Window->Preferences... 對(duì)話框,從右側(cè)的樹形列表中選擇“ PyDev”->“Interpreter Python”, 點(diǎn)擊New按鈕,從Python的安裝路徑下選擇Python.exe,然后會(huì)彈出一個(gè)對(duì)話框讓你勾選System PYTHONPATH,我是都選了,應(yīng)該無(wú)所謂。最后點(diǎn)Ok,退出。
一、進(jìn)行Django項(xiàng)目的開發(fā)配置
1、建立PyDev Project
Eclipse IDE――>File――>New――>Other――>Pydev――>選擇Pydev Project――>起一個(gè)項(xiàng)目的名稱(例如demo)――>選擇路徑,如E:/work――>選擇適合你的Python版本(我的是2.5)――>將下面的勾去掉,不要建立src文件――>Finish。
2、建立Django Project
(1)django-admin.py startproject demo。(貌似不能在命令行直接用django-admin.py,而必須使用C:/Python26/Scripts/django-admin.py,后來(lái)才知道要把C:/Python26/Scripts加入Path.)
(2)把生成的Django項(xiàng)目目錄拷貝到Eclipse剛剛建立的項(xiàng)目下的目錄里。返回剛才的Elicpse IDE――>在PyDev Package視圖中刷新剛新建的項(xiàng)目demo,即可看到Django項(xiàng)目工程。添加、刪除文件和目錄的操作都可以通過(guò)右鍵菜單來(lái)完成。
3、Django項(xiàng)目工程配置
(1)project 右鍵――>屬性――>選擇PyDev-PYTHONPATH――>add source folder(選擇項(xiàng)目文件路徑添加到項(xiàng)目代碼――>確定 。
(2)對(duì)Pydev項(xiàng)目進(jìn)行配置:
選擇Pydev的項(xiàng)目名稱――>Run as――>Open Run Dialog――>Python Run――>右鍵New――>在Main面板中寫入項(xiàng)目名稱,通過(guò)Browse載入項(xiàng)目名稱和Main Module,Main Module選擇manage.py――>在Augement面板中,arguments中輸入 runserver --noreload,下面的working directory加入你的base directory。
二、進(jìn)行Django項(xiàng)目的調(diào)試配置
跟開發(fā)配置差不多,但是添加了兩個(gè)環(huán)境變量,具體操作如下:
(1)project 右鍵 ――>Debug as ――>open Debug dialog。
(2)main窗口中選擇manage.py所在的project,Main Module選擇manage.py所在文件位置。
(3)arguments中輸入 runserver --noreload。
(4)Environment中添加DJANGO_SETTINGS_MODULE=settings ,PYTHONPATH=$PWD。
三、配置pylint
??? 1、pylint簡(jiǎn)介
?????????pylint主要用來(lái)分析你的PY代碼,查找出其中的錯(cuò)誤,并給出提示,并且還可以為你提出一些編碼風(fēng)格的提示的一個(gè)PYTHON模塊。總之,它的作用是使得你的代碼更加的接近 PEP 008 (http://www.python.org/dev/peps/pep-0008/) Title:? Style Guide for Python Code 中所描述的代碼風(fēng)格,使你的代碼統(tǒng)一并更加可讀。
??? 2、下載并安裝pylint
?????????pylint,?logilab-astng,?logilab-common?,安裝方式跟安裝django的方式都是一樣的。也就是直接使用
? python setup.py install 即可。
??? 3、配置使用pylint
???????? (1)Window -> preferences -> Pydev -> Pylint,選中"Use pylint?",再輸入lint.py的地址,例如"C:/Python25/Lib/site-packages/pylint/lint.py"
???????? (2)并在最后編輯框中添加參數(shù),以限制pylint的輸出。
???????????? --persistent=n --comment=n
?? ?--disable-msg=C0103,C0301,W0312,W0511,W0232,E1101
?
?? ? ? ? (3)Project->Properties->PyDev-PYTHONPATH增添項(xiàng)目的源文件目錄到"Project Source Folders"。
???????? (4)選中Project->Build Automatically,這樣保存修改時(shí)pylint就會(huì)自動(dòng)check項(xiàng)目中的代碼,否則就要用Ctrl+B手動(dòng)build并觸發(fā)pylint。
??參考文檔:
http://pydev.org/manual_adv_pylint.html
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
