【问题标题】:Vim for Windows: Python doesn't load properly / “crashes”Vim for Windows:Python 无法正确加载/“崩溃”
【发布时间】:2015-08-15 13:16:11
【问题描述】:

为了在 Vim (Windows) 上安装一些使用 python 的插件,我已经苦苦挣扎了 2 天。即使有股票 vimrc。

使用the official vim 7.4 binary (x86)

  • 我检查了它是否带有 +python/dyn 和 +python3/dyn
  • 我已经安装了 Python 2.7.10 x86,并在我的 Path 环境中附加了 python 的路径。
  • :echo has('python') 按预期打印 1
  • 然而:当我输入 :python print 'test' 时,vim 退出,就像我输入了 :q
  • :python mum tell me, why does windows exists?,它也退出了。想知道为什么...至少不是print 问题。

使用tuxproject's nighty builds of vim 7.4.826 (x86)

  • 它确实带有 +python/dyn 和 +python3/dyn。另外:

使用的库:Perl 5.22.1、Python 2.7.10、Python 3.4.3、Ruby 2.2.3、Lua 5.3.0、Tcl 8.6.4、libXpm。

太棒了!那是我下载的版本(2.7.10)!等等……

  • :echo has('python') 按预期打印 1
  • 但是,“圣诞快乐!” vim 说。

抱歉,此命令已禁用,无法加载 Python 的站点模块。 Windows 还不够好。哦,圣诞快乐!

使用tuxproject's nighty builds of vim 7.4.826 (x64)

我尝试使用 x64 的 python 二进制文件,注意从我的 Path 变量中删除 x86 版本。与上述相同的问题。

使用Kaoriya's vim 7.4.something (x64)Veegee's vim 7.4.803

与上述相同的问题。

编译vim怎么样?

窗户。


我没那么懒,嗯,是的,我是…… 但是如果没有其他解决方法,我会尝试编译它。如果它不能解决任何问题,我真的不想编译它。如果我至少能理解为什么会发生这些问题……

【问题讨论】:

标签: windows python-2.7 vim vim-plugin


【解决方案1】:

好吧,我设法解决了这个问题。

对于那些可能感兴趣的人,预期的 Python 版本是 Python 2.7.9 而不是 2.7.10。安装 Python 2.7.9 x86(和 x64)修复了相应 vim 版本的所有问题。

【讨论】:

  • 你是怎么想出来的?我终于咬紧牙关在 Vim 中安装了 Python,并在键盘上苦苦挣扎了一段时间......我很失望 2.7 版本并非全部兼容(这无论如何都违背了 DLL 的目的,不是吗?)并且还对没有明显的文档说明需要什么版本的 2.7(可能是 3)感到失望。
  • 我需要安装 32 位 Python 才能获取 DLL 也很烦人。我使用/需要 64 位来处理其他所有内容。
  • 让我在这里提一个附带问题:即使您的 Vim 有一个对 +python/dyn 的复选标记,如果该目录丢失,以下命令可能会搞砸一切。 ` 让 $PYTHONHOME = 'C:/Program Files/Anacoda'`。这花了我几天时间。
  • 我怀疑问题出在a bug in versions since 2.7.9。通过以管理员身份运行以下 PowerShell,我设法让它与 2.7.11 一起使用:cd HKLM:\SOFTWARE\WOW6432Node\Python\PythonCore; mv 2.7 2.7-32
  • 我可以确认@bart 解决方案有效。我在 Vim 8.0.118 和 Python 2.7.11 上。移动注册表项也为我解决了这个问题。
【解决方案2】:

首先,需要检查编译到vim中的python版本。一种方法是编辑 gvim 可执行文件(例如,对于窗口,它是 gvim.exe),并按照 vim 手册中的说明查找“python\d*.dll\c”。尽管如此,当你运行:echo has('python3') || has ('python')时,它可能会提示你vim找不到并加载python27.dll或python32.dll,所以你可以猜到python也是用vim编译的。

一旦你确定了所需的python版本,并且如果你的python安装在另一个位置,那么你可以指定pythonthreedll的位置让vim找到它。

:set pythonthreedll=D:\installed\python\python35.dll

再次检查以下内容: :echo has('python3')

【讨论】:

    【解决方案3】:

    我也有这个问题,但我不必安装以前的版本。

    我为解决这个问题所做的只是在我的系统环境变量中设置PYTHONHOME=C:\Users\MYUSERNAME\Anaconda2! 如果您没有使用 Anaconda 作为 Python 安装程序,则可能需要调整位置。

    注意:我使用 python 2.7.11 和 3.5(它们都是通过 Anaconda 64 位安装的)

    附言。请确保 PYTHONHOME 输入正确,没有下划线。它应该只指向 Python 2 的位置。不要指向 Python 3 文件夹。

    PPS。事实证明,如果你设置PYTHONHOME,你在终端上运行的python3命令会崩溃,所以我不再建议了。

    【讨论】:

    • 没问题。 python 3有一个环境变量,vim支持它! PYTHON3_HOME。在Windows中,您应该将其设置为我的电脑,右键单击,属性,前进,单击关于环境变量的最后一个底部,保存所有内容并记住关闭vim,如果它直到打开。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-04
    • 2017-02-03
    • 1970-01-01
    • 2020-09-21
    • 2018-12-15
    • 2019-08-08
    相关资源
    最近更新 更多