支持不起作用

20
我正在尝试使用neovim和deoplete以及UltiSnips。两者都需要nvim支持Python。
我按照:help nvim_python中的说明进行设置,但是:echo has('python'):echo has('python3')的输出都为0
在nvim-startup时,我收到了消息UltiSnips需要py >= 2.7或py3,而对于deoplete,则需要支持Python 3的Neovim("+python3")
我的 python (2.7.10) 和 python3 (3.4.3) 都是用 homebrew 安装的。neovim 模块通过 pippip3 安装,使用命令 install neovim,但是 nvim 找不到它,即使我在 nvimrc 中设置了 let g:python_host_prog 的路径。
我不知道还能做什么,有人知道出了什么问题吗?

我不确定这是否有效。输入“where python”或“which python”来检查您的Python是否已正确安装。然后手动配置您的nvim以查看生成的路径。另一个潜在问题是您的nvim安装可能与您所认为的不同。您在pip安装之前进行了手动解压吗? - Patrick the Cat
我的Python都位于/usr/local/bin/,因为'which'的输出显示如此。我按照neovim OS X文档中所述通过homebrew安装了nvim。 - hueby
遇到了这个确切的问题,希望能得到帮助。 - Simon Smith
由于迄今为止还没有提到:如果您遇到Python支持方面的问题,请尝试使用https://github.com/neovim/neovim/wiki/Troubleshooting#python-support-isnt-working查找Neovim检查的Python版本。这比使用“:!which python”或类似命令更可靠。 - fwalch
7个回答

15
请按照 https://neovim.io/doc/user/provider.html#provider-python 中的说明设置neovim的python解释器。首先,安装pynvim(以前称为neovim,但现在已更改名称)插件。
pip3 install pynvim

打印g:loaded_python3_provider

echo g:loaded_python3_provider
" for python 2.x use the following
" echo g:loaded_python_provider
如果返回1,则表示Python未设置为neovim。在您的~/.config/nvim/init.vim文件中设置Python解释器。
let g:python3_host_prog='/path/to/python3'
" for python2, use the following instead
"let g:python_host_prog = '/path/to/python2.7'

不要忘记为Python3添加配置。 - Yonsy Solis
3
http://neovim.io/doc/user/nvim_python.html的链接已经失效了,我们还有其他的链接吗? - charlespwd
4
@charlespwd,我能找到的最接近的东西是 https://neovim.io/doc/user/provider.html#provider-python。 - Ullullu

7

最近我遇到了同样的问题。下面是从 @VforVitamin 的答案中采取的步骤,我使它工作起来了。

假设已经安装了python2和python3。

  1. 安装neovim插件 pip3 install neovim
  2. 打开neovim。
  3. 执行命令 :UpdateRemotePlugins
  4. 重新启动neovim。

这个答案救了我! - Abhishek Prakash

1
我自己也遇到了这个问题,因为我在virtualenv中使用了neovim。如果是这样,请确保在您的virtualenv中安装pip install neovim,并确保在python解释器中import neovim正常工作。
如果这样做没有帮助,您可以尝试使用调试消息运行neovim(neovim -V3或任何其他日志记录级别),然后从中选择需要的信息。

1

我敢打赌你的init文件中有一行以“set runtimepath=”开头。 将其改为“set runtimepath+=”。


0

我曾经遇到同样的问题,解决方案实际上来自于问题本身。

我的做法是:

pip install --upgrade pip
pip3 install --upgrade pip

sudo pip install setuptools
sudo pip3 install setuptools

sudo pip install neovim
sudo pip3 install neovim

接着,在neovim中输入:UpdateRemotePlugins。关闭并重新打开。

完成这些步骤后,我的neovim正常工作了。

编辑:

对于使用Arch Linux的用户,我们有一个关于Python的特殊性。步骤如下:

  1. 安装pip(python3)和pip2(python2):pacman -S python-pip python2-pip
  2. 您应该使用pip2而不是pip3

除了这个小差异,其余的命令基本上都是相同的。


0

如果您在尝试时得到错误 let [interp, errors] = provider#pythonx#Detect(2)

从以下文档中获取: https://github.com/neovim/neovim/wiki/Troubleshooting#python-support-isnt-working

可能是因为您的VIM环境变量指向了错误(可能是vim74)的运行时目录。

Neovim需要从runtime/autoload/providers/文件夹加载python interp的pythonx.vim。Vim74没有提供此文件。

如果您有一个名为VIM(带有路径)的环境变量,则将其用作运行时文件的位置 - 我将我的设置为/usr/share/vim/vim74,将其更改为neovim的位置即可。我想还有一种编译时选项可以指向正确的位置。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接