22 votos

¿Cómo puedo usar Emacs Flymake modo para python con pyflakes y pylint código de comprobación?

Para la comprobación de código en python modo puedo usar flymake con pyflakes

También quiero comprobar el estilo de código (pep8) con pylint (descripción en la misma página con pyflakes)

Esta solución de trabajo. Pero no puedo configurar flymake para trabajar con pyflakes y pylint juntos. ¿Cómo puedo hacerlo?

34voto

vaab Puntos 1639

Bueno, flymake está buscando un comando ejecutable thats líneas de salida en un formato predefinido. Usted puede hacer un script de shell, por ejemplo, que llamará sucesivamente todas las fichas que quieras...

También debe asegurarse de que su guión termina por volver a errorlevel 0. Así que este es un ejemplo:

Esto es lo que he hecho en un "pycheckers" secuencia de comandos:

#!/bin/bash

epylint "$1" 2>/dev/null
pyflakes "$1"
pep8 --ignore=E221,E701,E202 --repeat "$1"
true

Para el emacs lisp parte:

(when (load "flymake" t)
  (defun flymake-pyflakes-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 "pycheckers"  (list local-file))))
   (add-to-list 'flymake-allowed-file-name-masks
             '("\\.py\\'" flymake-pyflakes-init)))

7voto

Fay Puntos 6

Por lo general se puede habilitar flymake modo en el python-mode-hook. Por desgracia, eso causa problemas con cosas como py-ejecutar-buffer que crear temporal de búferes que invocar el gancho y, a continuación, causa flymake modo de hipo debido a la falta de "archivo real". La solución es modificar las condiciones en las que usted agregue el gancho:- e.g la mía es:

(add-hook 'python-mode-hook 
      (lambda () 
        (unless (eq buffer-file-name nil) (flymake-mode 1)) ;dont invoke flymake on temporary buffers for the interpreter
        (local-set-key [f2] 'flymake-goto-prev-error)
        (local-set-key [f3] 'flymake-goto-next-error)
        ))

0voto

Vince Puntos 3980

Puede que desee comprobar hacia fuera el Lisp secuencia de comandos aquí (http://charlie137-2.blogspot.com/2009/08/check-python-coding-style-on-fly-with.html), que debe ayudar con la comprobación de PEP8 a la pep8.py. Yo no uso pyflakes o pylint, pero me imagino que usted puede ajustar fácilmente este trabajo con otras damas.

0voto

Bleeding Fingers Puntos 2614

Por lotes de Windows versión de vaab s pychechker

@echo on
pylint %1
pep8 --ignore=E221,E701,E202 --repeat %1
pyflakes %1

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X