运行 python 时 GVIM 崩溃

Posted

技术标签:

【中文标题】运行 python 时 GVIM 崩溃【英文标题】:GVIM crashes when running python 【发布时间】:2016-06-06 10:45:09 【问题描述】:

我不能在 GVIM 中使用 python。当我输入: :python print 1 它只是关闭 GVIM 而没有任何消息。我尝试使用-V90logfile 运行它,但我找不到有关崩溃的任何信息。

GVIM 是用 python 编译的(:version 显示 +python/dyn +python3/dyn)。

GVIM 版本:7.3.46(带 OLE 的 32 位)。 Python 版本:2.7.3

最初 GVIM 找不到 python27.dll 所以我编辑了$MYVIMRC 并添加了:

let $Path = "C:\\Program Files (x86)\\Python27;".$Path

GVIM 和 Python 都是使用企业标准安装的 - 不是通过安装程序手动安装的。在这里询问,因为 IT 无法帮助我并重定向到外部支持。

我可以在我的个人计算机上重现该错误,在那里我复制了 GVIM 和 PYTHON 而没有安装它们。还有什么建议吗?

【问题讨论】:

【参考方案1】:

终于解决了问题。

原来Python使用PYTHONPATH变量来解析PYTHON文件夹(用来加载python库等等)。这是 Python 2.7 的默认值:

C:\Python27\Lib;C:\Python27\DLLs;C:\Python27\Lib\lib-tk

可以使用以下方法之一设置变量:

1。 Windows 注册表

设置HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python\PythonCore\2.7\PythonPath键的默认值

2。环境变量

创建环境变量PYTHONPATH并设置值(与编辑全局PATH相同)

3。 _vimrc 文件

这是最便携的方式。编辑您的 _vimrc(即打开 vim 并输入 :e $MYVIMRC 命令)并设置变量:

let $PYTHONPATH = "C:\\Python27\\Lib;C:\\Python27\\DLLs;C:\\Python27\\Lib\\lib-tk"

【讨论】:

太棒了!这是让我的 gvim 运行 ConqueTerm 的最后一部分! 对我来说,将 PYTHONPATH 设置为 C:\\Python\\lib 适用于 python 3.6.4 和最新的 vim。 全局设置 PYTHONPATH 被证明是一个坏主意,因为它破坏了旧的 python2.7 脚本(在没有 virtualenv 的情况下运行)。 let $PYTHONPATH="C:\\Python\\lib" 效果更好。【参考方案2】:

Vim 似乎对 Python DLL 版本很挑剔。 2.7.11(我写这篇文章时的当前版本)不起作用。我为类似主题的另一个 SO 答案安装了 2.7.9,它运行良好。

请注意,Python 安装程序会将 DLL 放入 C:\Windows\system32(或类似的,具体取决于语言),这应该会自动出现在您的路径中,但在我的情况下,我只是希望 Python-in-Vim 能够工作,无论我安装了什么所以我把 2.7.9 的 DLL 复制到了 Vim 安装目录中。

也许 Python virtualenv 包在这里也会有所帮助,但我只是刚刚了解它并没有尝试过。

【讨论】:

以上是关于运行 python 时 GVIM 崩溃的主要内容,如果未能解决你的问题,请参考以下文章

Windows下将gvim8配置为Python IDE

Windows下将gvim配置为Python IDE[转]

Windows下将gvim8配置为Python IDE

在 C++ 中嵌入 Python 在运行时崩溃

windows下使用gvim不支持python3.6问题解决

运行时在 Python 上使用 Pickle 的应用程序崩溃