Flake8 не может обнаружить проблемы с синтаксисом, которые могут быть обнаружены pyflakes

Я пытаюсь заставить Emacs flycheck хорошо работать с проверкой синтаксических ошибок python. По умолчанию он использует flake8, но я заметил, что в последнее время flake8 сообщает только о проблемах со стилем, когда он должен давать такие же результаты, как и pyflakes.

Например, у меня есть простой скрипт Python с неправильным именем модуля.

$ cat so.py

import os

print(os.path)

op.path()

вывод $ flake8 so.py пуст, а вывод pyflakes

 $ pyflakes so.py

 so.py:5: undefined name 'op'

Моя конфигурация flake8, если это имеет значение:

[flake8]
max-line-length = 96
ignore = E123,E701,E126,F821

Я использую Linux, если это имеет значение.

Версия Flake8: версия 3.3.0 mccabe: 0.6.1, pycodestyle: 2.3.1, pyflakes: 1.5.0

Версия Pyflakes: 1.5.0


person lullis    schedule 24.05.2017    source источник


Ответы (1)


Если вам интересно, почему Flake8 не сообщает то, что, по вашему мнению, должно быть, лучший путь вперед — использовать флаг --isolated.

С содержимым файла выше в ex.py, если я это сделаю:

❯❯❯ flake8 --isolated ex.py
ex.py:5:1: F821 undefined name 'op'

Имея это в виду, кажется, что проблема здесь в вашей конфигурации.

person Ian Stapleton Cordasco    schedule 25.05.2017