¿Cómo puedo utilizar el modo Emacs Flymake para Python con pyflakes y pylint comprobación de código?
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?
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