[关闭]
@tony-yin 2018-10-12T03:05:58.000000Z 字数 1137 阅读 1119

Neovim python-mode

vim


打开py文件就会报错,可以发现是缺少pylama模块

  1. Error detected while processing function provider#python#Call:
  2. line 18:
  3. Traceback (most recent call last):
  4. File "<string>", line 1, in <module>
  5. File "/root/.cache/vim/dein/repos/github.com/python-mode/python-mode/pymode/lint.py", line 11, in <module>
  6. from pylama.lint.extensions import LINTERS

然后执行命令:

  1. pip install pylama
  2. pip3 install pylama

还是报一样的错误。

所以应该可以得出结论,vim加载python-mode的解释器不是系统的python,所以我们在/root/.cache/vim/dein/repos/github.com/python-mode/python-mode/pymode/lint.py文件的开头加了如下代码:

  1. import sys
  2. print sys.executable

再次打开py文件可以发现nvim加载的python解释器是venv

  1. /root/.cache/vim/venv/neovim2/bin/python

然后我们通过执行:

  1. /root/.cache/vim/venv/neovim2/bin/pip install pylama

再次打开py文件,可以发现不再报错。

该操作只是一个验证操作,我们要从根源上解决这个问题,那么就得在生成venv的源头安装pylama模块。

这个venv的安装是在安装vim-config这个配置的时候生成的,下面存在一个venv.sh文件,文件的最下方便是生成venv后,安装模块的操作:

  1. # Install or upgrade dependencies
  2. echo ':: PYTHON 2'
  3. "$venv/neovim2/bin/pip" install -U neovim PyYAML
  4. echo -e '\n:: PYTHON 3'
  5. "$venv/neovim3/bin/pip" install -U neovim PyYAML

我们只需要在后面新增一个pylama模块即可:

  1. # Install or upgrade dependencies
  2. echo ':: PYTHON 2'
  3. "$venv/neovim2/bin/pip" install -U neovim PyYAML pylama
  4. echo -e '\n:: PYTHON 3'
  5. "$venv/neovim3/bin/pip" install -U neovim PyYAML pylama
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注