0

我在 Windows 7 上安装了 Anaconda 的 iPython。(以前没有安装 python)。我可以毫无问题地运行 ipython。

然后我安装了 vim-ipython 插件。在 vim 中,当我运行时

:IPython

我懂了:

E492 Not an editor command.

我检查了 vim 版本:

:version
+python/dyn

我检查了(在vim中)

:python import sys
E370 Could not load python27.dll

在cmd上运行python:

Python 2.7.5 |Anaconda 1.7.0 (64-bit)| (default, Jul  1 2013, 12:37:52) [MSC v.1500 64 bit (AMD64)]

你能告诉我这个安装有什么问题吗?谢谢你。

编辑:我试过(在 Vim 中):

:echo has("python")
0

我真的很困惑!

编辑2:感谢大家的帮助。我决定在 Windows 上构建/编译 vim 64 位。我已经下载了 MinGW-w64,但不知道如何使用它:我找不到“make”。(我记得 32 位版本中有 mingw-32-make,但 64 位版本中没有。)

4

2 回答 2

1

您的故障排除输出显示您的 Vim 是使用动态加载的 Python ( +python/dyn) 编译的,但您得到的错误has('python') == 0意味着 Python 解释器无法成功加载。IPython 插件可能有一个保护子句,除非 Python 可用,否则它会阻止其加载。

您需要修复 Python 与 Vim 的集成,方法是使该 DLL 对 Vim 可用(这样就不会出现错误和has('python') == 1),或者(作为最后的手段)自己编译 Vim。

于 2013-10-06T11:45:38.390 回答
1

在 windows 上 vim 找到它的 python DLL 路径必须存在于$PATH. 有多种方法可以实现这一点:

  1. 编辑注册表。在葡萄酒上,我通过创建文件为PATH存储的键值添加一个新路径来实现这一点:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environmentpath.reg

    REGEDIT4
    
    [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment]
    "PATH"="{put old value of %PATH% here};C:\\path\\to\\python\\dll"
    

    并运行regedit path.reg,但我猜 HKEY_LOCAL_MACHINE 有点矫枉过正,你需要 HKEY_CURRENT_USER 下的东西。无论如何,我将它与葡萄酒(Windows 模拟器)一起​​使用,所以我不在乎。您可以regedit在没有参数的情况下启动并尝试在那里找到一些东西。

  2. AFAIR 有一种方法可以设置%PATH%用于启动 vim 的链接文件。
  3. 也许只需将以下内容放入 vimrc 即可:

    let $PATH.=';C:\path\to\python\dll'
    

注意:如果 vim 是用不同的 python 版本支持编译的,那么这些建议都不会起作用。此外,如果某些配置标志(例如调试支持)在来自 anaconda 安装程序的 python 和编译 vim 错误消息所使用的 python 之间存在差异,则应该更改。我不知道如果 vim 是 32 位而你的 python 是 64 位,错误消息是否会改变,但在这种情况下加载 python 肯定会失败。

于 2013-10-06T12:27:44.120 回答