¿Cómo puedo utilizar el modo Emacs Flymake para Python con pyflakes y pylint comprobación de código?

StackOverflow https://stackoverflow.com/questions/1259873

Pregunta

Para la comprobación de código en modo pitón utilizo flymake con pyflakes

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

Estas soluciones funcionan. Pero no puedo configurar flymake para el trabajo con pyflakes y pylint juntos. ¿Cómo puedo hacerlo?

¿Fue útil?

Solución

Bueno, flymake está sólo en busca de un ejecutable de líneas de salida thats de comando en un formato predefinido. Usted puede hacer un script de shell, por ejemplo, que va a llamar sucesivamente todas las fichas que desee ...

También debe asegurarse de que termina la secuencia de comandos mediante la devolución de nivel de error 0. Así que este es un ejemplo:

Esto es lo que he hecho en un guión "pycheckers":

#!/bin/bash

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

Para los 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)))

Otros consejos

Por lo general, se puede activar el modo flymake en el python-mode-hook. Por desgracia que causa problemas con cosas como py-ejecutar-buffer que crean memorias intermedias temporales que invocan el gancho y luego causan flymake modo de tener hipo debido a la falta de "archivo real". La solución es modificar las condiciones en las que se agregan el gancho: - por ejemplo mina 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)
        ))

Es posible que desee echa un vistazo a la secuencia de comandos aquí Lisp ( http://charlie137-2.blogspot.com/2009/08/check-python-coding-style-on-fly-with.html ), que debe ayudar con la comprobación PEP8 a la pep8.py. No consumo pyflakes o pylint, pero me imagino que fácilmente se podría ajustar esta trabajando con otras damas.

Windows versión lote de pychechker de vaab

@echo on
pylint %1
pep8 --ignore=E221,E701,E202 --repeat %1
pyflakes %1
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top