2012-07-31 41 views
3

我从官方VIM.org网站下载gVim73_46.exe并以其全面的组件安装了它,我开发使用Python 3.2(但会满足于3.1,如果它更可能与VIM工作)。预编译的官方gVim Windows二进制文件是否可以与Python 3一起使用?

运行vim --version命令给了我一个-python -python3结果。但是,在Vim中运行:echo has("python")会给出1(True)。这是否意味着我的Vim是为支持Python 2而构建的?

至于Python 3中,运行:py3命令给出E370: Could not load library python31.dll。这是否意味着它支持Python 3.1?如果是的话,我可以使用我的3.2吗?

如果没有,有没有我能获得支持的Python 3(+python3)预编译的Windows可执行文件的任何来源?

+1

也尝试vim中的':version',它列出了相同的编译标志吗? – pb2q 2012-07-31 00:46:49

+0

是的,它们是相同的标志(-python -python 3)。谢谢。 – 2012-07-31 01:12:56

回答

1

@pydave正确回答了您的问题,我只能另外建议使用vim的另一个版本:http://tuxproject.de.nyud.net/projects/vim/。它包含近乎最新版本的解释器,包括Python-3.2.3。而且该机还采用最新的vim-7.3.618其中包含我的补丁扩展蟒蛇/ python3解释支持(pyeval()/py3eval()功能和vim.bindeval())。

更新:它似乎转移到http://tuxproject.de/projects/vim/,但我不再使用预编译的二进制下去(有一个脚本,交叉编译它们对我来说),因此无法确认这是真的。

+0

非常感谢。这真的很有帮助。 – 2012-07-31 08:03:19

+0

@ZyX链接已损坏。你能更新吗? – Qix 2014-06-08 07:42:14

2

:help python3

Vim can be built in four ways (:version output): 
1. No Python support  (-python, -python3) 
2. Python 2 support only (+python or +python/dyn, -python3) 
3. Python 3 support only (-python, +python3 or +python3/dyn) 
4. Python 2 and 3 support (+python/dyn, +python3/dyn) 

When Python 2 and Python 3 are both supported they must be loaded dynamically. 

运行:PY3命令给E370:无法加载库python31.dll。这是否意味着它支持Python 3.1?

是的。如果你得到python 3.1并正确设置你的路径,vim应该有python。

我可以把它用我的3.2?

不,vim编译期望某个接口,所以你需要一个匹配的库。

+0

+1。谢谢。你能澄清一下,Python 3如何支持Vim给出'-python -python3'? – 2012-07-31 08:02:25

+2

@MoayadMardini'has(“python”)== 1'表示python被加载,'+ python'表示vim使用系统链接器进行python支持编译。 Vim可能被编译为依赖于系统链接器导入Python C API函数,或者使用dlopen + dlsym(它们的Windows对等体,不完全记住名称)自己导入它们。在最后一种情况下,has(“python”)首先尝试加载python库,然后报告是否支持python,但是将+ python替换为+ python/dyn。但请注意,在我的系统中'vim --version'给出'+ python/dyn + python3/dyn',没有'-python'或'+ python'。 – ZyX 2012-07-31 16:48:39

+0

非常感谢:) – 2012-07-31 21:01:40

相关问题