在Windows上安装支持Python3的GVIM?
我该如何在Windows上安装支持Python3的GVIM?我已经安装了VIM 7.4,在它的版本文件中(运行 :version 命令)显示“+python3/dyn”和“-DDYNAMIC_PYTHON3_DLL=\"python32.dll\"”。所以看起来它已经准备好支持Python 3。当我运行
:echo has("python3")
时,它返回的是零。如果我用
:py3 print("hello")
测试,它说无法加载python32.dll。
5 个回答
我测试过,使用相同的架构来运行vim和python是很重要的。你可以查看这个链接了解更多信息:https://vi.stackexchange.com/questions/11004/how-to-get-python-support
如果你只是想在vim中使用python的功能,可以下载一个叫做python36.dll的文件,然后把它放到$VIM这个文件夹里。接着,你可以通过输入命令::echo has('python3')来确认是否成功。
很不幸,这个问题我花了一整天才搞明白。下面是解决这个问题的最简单方法,如果你想在Windows上用GVIM 7.3+支持Python3的话。
我在64位的Windows 8上,但你需要下载一个32位的Python版本。默认情况下,你很可能会有一个32位的GVIM,这两个版本需要一致。特别是,下载一个3.2.x版本的Python3,因为VIM需要这个版本的DLL文件(python32.dll)。别去碰最新的Python 3版本,比如写这段话时的3.4.0;如果你真的需要那个版本,我就帮不了你了。
安装好Python 3.2.x后,确保你完成最后一个麻烦的步骤:
python32.dll并不在system32文件夹里,而是在C:\Windows\SysWOW64文件夹里。你需要把"C:\Windows\SysWOW64"添加到你的PATH环境变量中。
现在再试试在GVIM中运行你的Python3测试,应该就能成功了。
这里有一个方法,可以让VIM 7.x和Python 3.x一起使用。
首先,安装你喜欢的VIM版本。建议从VIM.org下载最新版本,不过这个网站似乎只提供32位版本。如果你想要64位的(我比较喜欢这个),可以在https://bintray.com/veegee/generic/vim_x64找到预先构建好的版本,或者去其他地方找你自己的预构建版本,或者自己编译一个。
接下来,输入命令::py3 print("hello")
这时可能会找不到python的dll文件,系统会给出一个错误信息,比如说无法加载pythonXX.dll,其中XX是两位数字。在我的情况下,VIM在找python35.dll,这个文件是来自Python 3.5.1(可能任何Python 3.5.x版本都会有)。这个数字会根据你使用的VIM版本而变化。
去找一个匹配的Python版本。匹配的意思是VIM和Python必须都是32位或者64位,并且VIM需要的DLL(在第3步提到的)必须存在。所以举个例子,Python 3.5.x提供了python35.dll。安装它。
我记得没有做什么特别的事情来让VIM找到python的DLL,只要确保它所在的目录在路径中,我想它本来就已经在了。如果没有,就把包含DLL的目录添加到你的路径中。
重新尝试第2步。现在应该可以正常工作了。
如果将来你升级了VIM或Python,可能需要同时升级另一个,以确保第2步的测试仍然有效。
这个问题之所以难,是因为具体的解决方案很快就会过时。在解决方案发布的当天,vim
或python
的版本就可能更新,或者链接会发生变化。@mark-colon提供的步骤非常棒,但是针对vim-7的。
通用说明:
vim
和python
需要在很多方面保持一致:
两者都需要是32位或64位的。
Vim需要找到特定版本的python dll。这取决于你下载的gvim是由谁编译的。例如,gvim-8.1.x可能会使用python3.6或python3.7,必须是确切的版本!有时你可以用
gvim --version
查看vim启动时正在寻找哪个特定的dll,否则你需要查找你下载gvim的地方。这就是你必须在网上搜索并安装到系统上的python
版本。(另外,如果你觉得python的版本比vim的版本更重要,你可以尝试找一个为python编译的vim版本,但这会更难找到。)确保存放python dll的目录在%PATH%环境变量中。(注意:有些人只是把python dll复制到$VIM文件夹里来让事情运作,这只在短期内有效。你并没有所有必要的python库,这些库通常是默认可用的。)
最后,使用命令
:python2 print("hello")
或:python3 print("hello")
来验证,具体取决于你想要哪个版本的python。
具体链接(如果你需要的话):
注意:这些链接很快就会过时,但以下是一些可能可以一起工作的gvim和python的编译版本链接:
对于gvim-8.1.x
和python-3.7.x
或python-2.7.x
(截至2018-08):
对于gvim-8.1.x
和python-3.6.x
或python-2.7.x
(截至2018-08):
对于gvim-7.4.x
和python-3.5.x
或python-2.7.x
(截至2018-08):