安装jedi-vim失败了:vim错误地说+ python没有被编译

时间:2015-04-20 10:42:45

标签: python vim

我正在尝试安装jedi-vim。我在工作中这样做 - 所以我必须在Windows中使用gVim。我已经阅读了这个论坛的其他几篇文章。这在某种程度上让我更聪明,但仍然无法解决我的问题。

我做了以下事情:

  1. 安装了Pathogen
  2. https://github.com/davidhalter/jedi-vim.git克隆jedi vim并将其复制到vim-dir中的bundle /文件夹。
  3. 现在,当我打开* .py文件时,vim总是告诉我

      

    jedi-vim要求使用+ python编译vim

    但':'版本'告诉我它是使用+python/dyn+python3/dyn编译的。

  4. 那么问题是什么?

    其他信息:

    • vim版本:7.4
    • 当我使用 ctrl + space 自动完成一个python关键词时,它会告诉我:

        

      处理函数时检测到错误jedi #complents:第1行:E492:不是编辑器命令:Python jedi_vim.completions()
        处理函数时检测到错误jedi #complents:第1行:E492:不是编辑器命令:Python jedi_vim.completions()
        按ENTER或键入命令继续

    •   

3 个答案:

答案 0 :(得分:1)

我不确定你是否仍然遇到同样的问题,但在环顾四周之后,我发现这篇博文解决了我的问题。本质上,它只是重新安装vim(不删除任何配置文件),然后使用正确的标志从vim mercurial repo的源重新安装。可能有一个更短/更简单的版本,但在尝试来回许多解决方案后,这个是唯一有效的解决方案:

以下是这些步骤: 检查Vim是否使用Python编译:

BC, BD, BA, CD, CA, DA

删除已安装的Vim版本:

$ vim --version | ack '(python)'

安装编译Vim所需的依赖项:

$ sudo apt-get remove vim-common vim-runtime

克隆Vim存储库,编译并安装新版本:

$ sudo apt-get build-dep vim

答案 1 :(得分:0)

+python/dyn表示Python支持不是静态编译的,它是在运行时需要时动态加载的。

python-dynamic帮助部分对此进行了描述:

  

在MS-Windows上,可以动态加载Python库。然后|:version|输出包含|+python/dyn|

     

这意味着Vim将仅在需要时搜索Python DLL文件。   当您不使用Python界面时,您不需要它,因此您可以使用   没有这个DLL文件的Vim。

     

要使用Python接口,Python DLL必须位于搜索路径中。在控制台窗口中键入“path”以查看使用的目录。

     

DLL的名称必须与Vim编译的Python版本匹配。   目前名称是“python24.dll”。这适用于Python 2.4。要知道   确保编辑“gvim.exe”并搜索“python \ d * .dll \ c”。

(不要担心那里的2.4;我刚刚在几年前找到了文档。在你自己的vim副本中阅读帮助 - 或者,更好的是,做最后一段所说的。)

所以,要么你没有Python,你有错误的Python版本,它不在你的%PATH%上,vim正在不正确地搜索它,或者它无法加载。

答案 2 :(得分:0)

当时问题是另一个问题。我混淆了vim和python的架构 - 我使用了vim64Bit,但是使用了32位的pyhton。 我已经修复了一段时间了,但前几天我不得不重新启动计算机并做一些微软更新。 不幸的是,我的vim(7.4)完全坏了。我不得不重新设置我的家庭主导。然后至少我的vimrc可以再次访问,但仍然我在vim中的jedi不起作用。

Python在vim中可用但仍然没有jedi正确加载。 当我输入" len("在 .py文件的开头,在应该解释参数的地方有一些奇怪的字符,类似于:     = =jedi=0, = =( _ 对象 _ *)= =jedi= =

当我输入" self。"时,它表示"未知功能:pythoncomplete#Complete"

我认为这只是配置问题,因为它在重启之前有效。 Jedi安装在全系统(带点子)。如果我再次尝试安装#34;,pip说已经安装了jedi。

我非常感谢你的帮助; - )