2015-04-17 4 views
2

Я использую vim-flake8 (v0.5) плагин с vim. С помощью следующего кода:Почему flake8 бросает SyntaxError при вызове печати в лямбда?

fn = lambda: print("Hey") 

я неожиданно получаю сообщение об ошибке:

SyntaxError: invalid syntax [E901]

Но тем не менее, интерпретатор питона не бросает какую-то ошибку ... Почему flake8 говорить об этом?

+1

Это vim-flake8 с использованием Python2 с Flake8 или Python3? –

ответ

2
fn = lambda: print("Hey") 

недействителен в Python 2.7, но он действителен в Python 3.4. Таким образом, вы можете проверять код на другую версию Python от той, которую вы на самом деле используете для запуска кода.

+0

Действительно, flake8 использует CPython 2.7.8, но как изменить его версию python? – Spirine

+2

@Spirine: запустите 'which flake8', чтобы проверить, какой исполняемый файл flake8 вы используете, и убедитесь, что он соответствует используемой вами версии Python. Поэтому, если у вас есть виртуальная среда, вам нужно установить flake8 внутри этой виртуальной среды, чтобы соответствовать версии Python в этой виртуальной среде. В противном случае обновите flake8 глобально, чтобы соответствовать версии Python, установленной глобально. –