GVIM在运行Python时崩溃

7
我无法在GVIM中使用Python。当我输入:python print 1时,它会直接关闭GVIM而没有任何提示信息。我尝试使用-V90logfile运行它,但是我找不到有关崩溃的任何信息。
GVIM已编译了Python(:version显示+python/dyn +python3/dyn)。
GVIM版本:7.3.46(32位带OLE)。 Python版本:2.7.3
最初,GVIM找不到python27.dll,所以我编辑了$MYVIMRC并添加了以下内容: let $Path = "C:\\Program Files (x86)\\Python27;".$Path GVIM和Python都是使用公司标准安装的,而不是手动安装。由于IT部门无法帮助我并将我重定向到外部支持,因此我在这里提问。
我在个人电脑上复制了GVIM和PYTHON,而没有安装它们,我可以重现错误吗?
2个回答

10

问题终于解决了。

原来 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所需的最后一步! - tkokasih
对我来说,将PYTHONPATH设置为C:\\Python\\lib适用于Python 3.6.4和最新的Vim。 - Antony Hatchkins
PYTHONPATH全局设置被证明是一个坏主意,因为它会破坏旧的python2.7脚本(在未使用virtualenv的情况下运行)。相比之下,使用let $PYTHONPATH="C:\\Python\\lib"效果更好。 - Antony Hatchkins

1
Vim对Python DLL版本非常挑剔。2.7.11(我写这篇文章时的最新版本)不起作用。根据另一个类似话题的SO答案,我安装了2.7.9,它可以正常工作。
请注意,Python安装程序将DLL放入C:\Windows\system32(或类似位置,具体取决于语言),这应该自动加入您的路径,但在我的情况下,我只想让Vim中的Python正常工作,而不考虑我安装了什么,因此我将2.7.9 DLL复制到了Vim安装目录中。
也许Python virtualenv包在这里也会有所帮助,但我刚刚了解到它,并没有尝试过。

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