如何设置Syntastic作为python3检查器而不是python2

时间:2016-12-07 13:37:20

标签: vim macvim syntastic

在MacVim中,我将以下代码保存为test.py

print "Hello world! python2"

,这显然是python3的错误,但是 运行后:w保存文件,没有错误信息, 以下是〜/ .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']

如何在终端中运行test.py时使用Syntastic检测此类错误:

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

2 个答案:

答案 0 :(得分:5)

flake8是一个Python包。它使用Python的内置工具来解析代码so it accepts syntax for the Python version that it belongs to

如何为python3安装安装它取决于安装本身的安装方式 - unless you're fine with using pip

答案 1 :(得分:1)

来自FAQ

  

<强> 4.11。问:如何检查为不同版本的Python编写的脚本?

     

一个。安装Python版本管理器,例如virtualenvpyenv,激活相关Python版本的环境,并在其中安装您想要使用的检查器。在g:syntastic_python_checkers中相应地设置vimrc,然后从虚拟环境运行Vim。

     

如果您从桌面管理器而不是从终端启动Vim,则可能需要在检查程序周围编写包装脚本,以在运行实际检查之前激活虚拟环境。然后,您需要将相关的g:syntastic_python_<checker>_exec变量指向包装器脚本。