如何使用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

相关文章
相关标签/搜索