【问题标题】:Vim syntastic shows import error for Python VirtualEnv librariesVim syntastic 显示 Python VirtualEnv 库的导入错误
【发布时间】:2020-05-02 03:59:28
【问题描述】:
我在我的 vim 上安装了 scrooloose/syntastic 插件。而且我已经在全球范围内安装了 pylint 库。
sudo python -m pip install pylint
但是对于我的项目,我有 VirtualEnv,并且该项目的所有必要库都安装在 VirtualEnv 中。
问题是,
- Syntastic 显示作为 virtualenv 一部分的库的导入错误
- 我的 Jedi-vim 插件向我展示了所有建议,并且我能够运行该问题,因此 python 方面没有任何问题。
【问题讨论】:
标签:
python
vim
vim-plugin
【解决方案1】:
你必须在你的 virtualenv 中安装 pylint 才能被 syntastic 识别。
最简单的方法是运行
(virtualenv) $ pip install pylint
在你的虚拟环境中。
如果你有太多的项目并且想要避免运行该命令来为每个项目安装 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 版本,我猜很容易弄乱版本)。
请注意,这种方法在打开文件时会增加一些延迟,但如果您不介意再等待 1 秒来打开文件,那么这种方法很有趣。