Vim syntastic显示Python VirtualEnv库的导入错误

时间:2018-11-11 20:10:22

标签: python vim vim-plugin

我在Vim上安装了 scrooloose / syntastic 插件。而且我已经全局安装了 pylint 库。

  

sudo python -m pip安装pylint

但是对于我的项目,我有 VirtualEnv ,并且该项目的所有必需库都安装在VirtualEnv中。

问题是

  • Syntastic显示属于virtualenv的库的导入错误
  • 我的Jedi-vim插件向我显示了所有建议,并且我能够运行该问题,因此python方面没有错。

1 个答案:

答案 0 :(得分:1)

您必须在virtualenv中安装pylint才能被syntastic识别。 最简单的方法是运行

(virtualenv) $ pip install pylint

在您的virtualenv内部。

如果您有太多项目,并且想要避免运行该命令来将pylint安装到每个项目中,则可以让vim为您运行它。将以下内容添加到您的.vimrc中:

py3 << EOF
import os
if 'VIRTUAL_ENV' in os.environ:
  os.system('pip install pylint')
EOF

这将避免使用virtualenv pylint,因为这会将pylint安装到您用vim打开的每个virtualenv中。 我相信可以使用g:syntastic_python_pylint_exe来更改pylint路径,但是如您所见here,不建议这样做(pylint依赖于python版本,很容易弄乱我的版本猜测)。 请注意,这种方法在打开文件时会增加一些延迟,但是如果您不介意再等待一秒钟来打开文件,则这种方法很有趣。