Gvim无法加载我的Python代码。

7
我想在Windows 7上使用gvim作为我的Python IDE,但是gvim无法加载我的Python。我的操作系统是带有SP1的Windows 7 X64,我使用的是Python35(64位)。
我在gvim中运行:version命令,输出包括:
....
+python/dyn

+python3/dyn

编译: ...

-DFEAT_PYTHON -DDYNMIC_PYTHON -DDYNAMIC_PYTHON_DLL=\"python27.dll\" -DFEAT_PYTHON3 -DDYNAMIC_PYTHON3 -DDYNAMIC_PYTHON3_DLL=\"python35.dll\"

这意味着这个gvim编译时支持python和python3,但是当我运行它时,出现了一些问题。
:echo has("python")

或者
:echo has("python3")

两者都返回0

:python print(3) 的结果为:

E370: 无法加载 python27.dll 库

E263: 抱歉,此命令已禁用,无法加载 Python 库。

我的 python35 目录是 C:\Python35,并且已在 PATH 中。

为什么会出现这种情况?gvim 只搜索 python27 而不是 python35 吗?

我按照 vim-ipython-failed-on-windows-7 的方法尝试编辑注册表,但没有成功。

我需要重新编译 gvim 吗,还是应该放弃使用 gvim?


1
相关 - https://dev59.com/wH_aa4cB1Zd3GeqP7L60 - shad0w_wa1k3r
@Ashish Nitin Patil 谢谢,但我认为这不是我的情况。所需的Python和GVim版本匹配。它仍然无法工作。 - Mr.Bingo
\"python27.dll\"周围的转义引号是什么意思?我期望它们成为尝试查找的文件名的一部分。列表中的所有其他DLL都有吗? - alexis
无论如何,它明显试图加载不存在的 python27.dll。也许当它看到 .py 文件时,需要告诉它加载 PYTHON3 功能? - alexis
@alexis 版本命令的输出太长了,但是所有的.dll文件都有转义引号 "。我什么也没做,但当我输入:py3 print('hello')时,它可以工作。 - Mr.Bingo
那么很明显::py3 命令链接到 python35.dll,但是 :python 命令链接到不存在的 python27.dll(正如我所建议的)。这解决了问题吗,还是还有其他问题? - alexis
3个回答

5
我也遇到了这个问题。我重装了几次Python,并确保Python和Vim都是相同的架构(都是32位),但没有成功。唯一解决它的方法是将python27.dll复制到Vim的目录中。有些粗糙,但可以解决问题!

这不是一个好的建议。最好将Python路径添加到PATH环境变量中(因为Python还需要目录中的其他文件)。 - user202729

5
正如其他人提到的,你的问题在于你正在使用gvim--它只有32位版本;曾经也有过64位的gvim版本,但已经停止开发(vim.org网站上如此说明)。如果你的gvim二进制文件(从vim.org获取的8.1版本默认是这样)中包含"+python/dyn"和"+python3\dyn",那么vim只需要知道在32位版本(而不是像你说的64位版本)的python36.dll位于哪里(在gvim 8.1中命名为该文件)。如果你可以打开cmd.exe并运行'python',如果你得到一个Python 3提示,则python36.dll可用于您的路径,gvim将知道在哪里找到它。我也遇到了同样的问题,但卸载64位版本并重新安装来自python.org的x86版本的Python 3.6.6后,gvim识别了它并正常工作。尝试快速执行:py3 print('hello'),如果你得到“hello”则表示一切设置正确。

这应该是被接受的答案,我通过安装32位版本的Python解决了问题。 - Daniele

3
:python 命令将使用 Python 2[.7] 解释器。由于您只安装了 Python 3[.5],因此您需要使用 :python3 / :py3 命令。

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