python是一門動態語言。在給python傳參數的時候並無嚴格的類型限制。寫python程序的時候,發現錯誤常常只能在執行的時候發現。有一些錯誤因爲隱藏的比較深,只有特定邏輯纔會觸發,每每致使須要花不少時間才能將語法錯誤慢慢排查出來。其實有一些錯誤是很明顯的,假如能在寫程序的時候發現這些錯誤,就能提升工做效率。最近我發現,能夠用pyflakes這個程序對python語法進行語法檢查,這樣能夠儘可能早的發現錯誤。pyflakes有三種使用方法,第一種是看成命令行工具使用。第二種能夠做爲vim的插件,在vim編輯器中使用,實現所見即所得。第三種是能夠在emacs中使用。php
安裝pyflakes這個程序很簡單。能夠在pyflakes的官網這個網站進行下載: http://pypi.python.org/pypi/pyflakespython
這是一個命令行工具。在linux下,能夠直接運行 ‘pyflakes 文件名’ 對文件進行語法檢查。linux
首先要確保vim支持python2.5以上版本,若是不肯定是否支持,請在vim中運行命令。shell
<!-- lang: shell --> :version
結果例如:vim
+表明支持的功能,-表明不支持的功能。因爲上圖所示的vim不支持python, 因此須要從新編譯vim。編輯器
要編譯支持python2.5以上版本的vim, 第一要具備python2.5以上版本。第二要有vim源碼,./configure --with-features=huge --enable-pythoninterp 而後再運行make ;make install編譯而且安裝。工具
肯定vim支持python2.5以上版本的方法爲,在vim中運行「:python import sys; print sys.version"網站
在vim支持了Python以後,直接下載[pyflakes.vim] 3 http://www.vim.org/scripts/script.php?script_id=2441ui
將下載的壓縮包,放在$HOME/.vim/下解壓。在$HOME/.vim/ftplugin/python/下會增長一個pyflakes目錄和pyflakes.vim文件。插件
而後在.vimrc文件中增長」filetype plugin indent on「。便可實如今vim編輯器中檢查python語法的功能。
emacs能夠經過flymake支持pyflakes。首先要安裝命令行模式的pyflakes, 而後將下面的代碼加入$HOME/.emacs
<!-- lang: cpp --> (autoload 'flymake-find-file-hook "flymake" "" t) (add-hook 'find-file-hook 'flymake-find-file-hook) (setq flymake-gui-warnings-enabled nil) (setq flymake-log-level 0) (when (load "flymake" t) ( defun flymake-pycheckers-init () ( let* ( ( temp-file ( flymake-init-create-temp-buffer-copy 'flymake-create-temp-inplace ) ) ( local-file ( file-relative-name temp-file ( file-name-directory buffer-file-name ) ) ) ) ( list "pyflakes" (list local-file) ) ) (add-to-list 'flymake-allowed-file-name-masks '("\\.py\\'" flymake-pycheckers-init)) ) )
而後在emacs界面中能夠顯示python語法錯誤的地方。