Frage

Code in Python Prüfmodus ich flymake mit Pyflakes

Auch ich will Code-Stil (PEP8) mit Pylint (Beschreibung auf der gleichen Seite mit Pyflakes) überprüfen

Diese Lösungen arbeiten. Aber ich kann nicht flymake für die Arbeit mit Pyflakes konfigurieren und Pylint zusammen. Wie kann ich es tun?

War es hilfreich?

Lösung

Nun, flymake sucht nur für eine ausführbare Befehl, das ist Ausgangsleitung in einem vordefinierten Format. Sie können ein Shell-Skript zum Beispiel machen, die nacheinander alle Kontrolleure nennen Sie wollen ...

Sie müssen auch sicherstellen, dass Ihr Skript endet mit der Rückkehr Errorlevel 0, so dass dies ein Beispiel ist:

Dies ist, was ich in einem "pycheckers" Skript getan haben:

#!/bin/bash

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

Für die Emacs Lisp Teil:

(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)))

Andere Tipps

In der Regel kann man flymake-Modus in dem python-mode-hook aktiviert. Leider, das verursacht Probleme mit Dingen wie py-Execute-Puffer, der temporäre Puffer schaffen, die den Haken aufrufen und dann verursachen flymake Modus wegen des Fehlens von „real-Datei“ Schluckauf. Die Lösung ist, die Bedingungen zu ändern, in dem Sie den Haken hinzufügen: - z Mine ist:

(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)
        ))

Sie möchten hier die Lisp-Skript überprüfen ( http://charlie137-2.blogspot.com/2009/08/check-python-coding-style-on-fly-with.html ), die mit der Überprüfung helfen soll PEP8 a la pep8.py. Ich benutze keine Pyflakes oder Pylint, aber ich glaube, man könnte dies leicht justieren mit anderen Kontrolleure zu arbeiten.

Windows-Batch-Version von vaab des pychechker

@echo on
pylint %1
pep8 --ignore=E221,E701,E202 --repeat %1
pyflakes %1
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top