如何使用pyflakes給python作語法檢查

python是一門動態語言。在給python傳參數的時候並無嚴格的類型限制。寫python程序的時候,發現錯誤常常只能在執行的時候發現。有一些錯誤因爲隱藏的比較深,只有特定邏輯纔會觸發,每每致使須要花不少時間才能將語法錯誤慢慢排查出來。其實有一些錯誤是很明顯的,假如能在寫程序的時候發現這些錯誤,就能提升工做效率。最近我發現,能夠用pyflakes這個程序對python語法進行語法檢查,這樣能夠儘可能早的發現錯誤。pyflakes有三種使用方法,第一種是看成命令行工具使用。第二種能夠做爲vim的插件,在vim編輯器中使用,實現所見即所得。第三種是能夠在emacs中使用。php

pyflakes做爲命令行工具

安裝pyflakes這個程序很簡單。能夠在pyflakes的官網這個網站進行下載: http://pypi.python.org/pypi/pyflakespython

這是一個命令行工具。在linux下,能夠直接運行 ‘pyflakes 文件名’ 對文件進行語法檢查。linux

在vim編輯器中使用pyflakes

首先要確保vim支持python2.5以上版本,若是不肯定是否支持,請在vim中運行命令。shell

<!-- lang: shell -->
:version

結果例如:vim

vim version

+表明支持的功能,-表明不支持的功能。因爲上圖所示的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語法的功能。

pyflakes

emacs支持

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語法錯誤的地方。

emacs

相關文章
相關標籤/搜索