Как я могу использовать режим Emacs Flymake для python с pyflakes и контрольным кодом pylint?

Для проверки кода в режиме python я использую flymake с pyflakes

Также я хочу, чтобы код чек-кода (pep8) с pylint (описание на той же странице с pyflakes)

Эти решения работают. Но я не могу настроить flymake для работы с pyflakes и pylint вместе. Как мне это сделать?

  • Импорт модулей python в jython
  • Как получить исходное имя переменной, переданное функции
  • Регулярные выражения: поиск в списке
  • Не трогай мой шебанг!
  • получить объекты внешнего ключа в одном запросе - Django
  • Можно ли запускать python SimpleHTTPServer только на localhost?
  • Проверьте, действителен ли путь на Python, не создавая файл в целевом пути
  • Отключить вставку выделенного текста при нажатии правой кнопки мыши в tkinter на OS X
  • 4 Solutions collect form web for “Как я могу использовать режим Emacs Flymake для python с pyflakes и контрольным кодом pylint?”

    Ну, flymake просто ищет исполняемую команду, которая выводит строки в предопределенном формате. Вы можете сделать сценарий оболочки, например, который последовательно вызовет все нужные вам шашки …

    Вы также должны убедиться, что ваш скрипт заканчивается, возвращая errorlevel 0. Итак, это пример:

    Это то, что я сделал в сценарии «pycheckers»:

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

    Для части emacs lisp:

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

    Обычно в режиме python-mode-hook можно включить режим flymake. К сожалению, это вызывает проблемы с такими вещами, как py-execute-buffer, которые создают временные буферы, которые вызывают крючок, а затем вызывают режим flymake для икоты из-за отсутствия «реального файла». Решение заключается в изменении условий, в которых вы добавляете крючок: – например, мой:

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

    Вы можете проверить скрипт Lisp здесь ( http://charlie137-2.blogspot.com/2009/08/check-python-coding-style-on-fly-with.html ), который должен помочь с проверкой PEP8 a la pep8.py. Я не использую pyflakes или pylint, но я думаю, вы могли бы легко настроить это, чтобы работать с другими шашками.

    Пакетная версия Windows pahechker от pychechker

     @echo on pylint %1 pep8 --ignore=E221,E701,E202 --repeat %1 pyflakes %1 
    Interesting Posts
    Python - лучший язык программирования в мире.