2016-12-07 8 views
6

В MacVim я сохранить следующий код в test.pyКак настроить Syntastic в качестве Python3 проверки вместо python2

print "Hello world! python2" 

, который, по-видимому неправильно с Python3, но после я бегу: ш, чтобы сохранить файл , нет никакого сообщения об ошибке для этого, Ниже приводится часть ~/.vimrc, что это все о Syntastic:

" Syntastic                  
"" Recommended settings               
set statusline+=%#warningmsg#             
set statusline+=%{SyntasticStatuslineFlag()}          
set statusline+=%*                
let g:syntastic_always_populate_loc_list = 1          
let g:syntastic_auto_loc_list = 1            
let g:syntastic_check_on_open = 1            

"" Display checker-name for that error-message         
let g:syntastic_aggregate_errors = 1   

"" I use the brew to install flake8            
let g:syntastic_python_checkers=['flake8', 'python3'] 

Как сделать Syntastic обнаружить этот тип ошибки, как я бегу test.py в терминале :

NingGW:Desktop ninggw$ python3 test.py 
    File "test.py", line 1 
    print "Hello world! python2" 
          ^
SyntaxError: Missing parentheses in call to 'print' 

Вот что: SyntasticInfo сказал:

Syntastic version: 3.8.0-10 (Vim 800, Darwin, GUI) 
Info for filetype: python 
Global mode: active 
Filetype python is active 
The current file will be checked automatically 
Available checkers: flake8 python 
Currently enabled checker: flake8 
Press ENTER or type command to continue 
+0

Какой Python установки не ваш 'flake8' принадлежат? Я думаю, что это ключ. –

ответ

3

flake8 представляет собой пакет Python. Он использует встроенные средства Python для анализа кода, so it accepts syntax for the Python version that it belongs to.

Как установить его для вашей установки python3 зависит от того, как была установлена ​​сама установка - unless you're fine with using pip.

+0

О, я просто получил это, завариваю установку flake8 на мой python2! Я переустановил его с pip3 сейчас ... – Niing

+0

Он работает! благодаря! прежде чем я получил ваш ответ, я попробовал pylint, чтобы решить его временно, теперь и pylint, и flake8 указывают на ошибку, первая сказала 'test.py | 1 col 1 error | [синтаксис-ошибка] Отсутствие скобок в вызове 'print' [python/pylint] 'и последняя' test.py | 1 ошибка col 21 | СинтаксисError: недопустимый синтаксис [E999] [python/flake8] ' – Niing

1

От FAQ:

4.11. Q. How can I check scripts written for different versions of Python?

A. Install a Python version manager such as virtualenv or pyenv , activate the environment for the relevant version of Python, and install in it the checkers you want to use. Set g:syntastic_python_checkers accordingly in your vimrc , and run Vim from the virtual environment.

If you're starting Vim from a desktop manager rather than from a terminal you might need to write wrapper scripts around your checkers, to activate the virtual environment before running the actual checks. Then you'll need to point the relevant g:syntastic_python_<checker>_exec variables to the wrapper scripts.

 Смежные вопросы

  • Нет связанных вопросов^_^