使用Python3(通过Homebrew安装)支持编译vim?

12

我已经通过Homebrew安装了Python 3: brew install python3 --framework

我已经在/usr/src目录下载了Vim源代码(版本7.3)

我运行以下命令:

./configure --prefix=/usr/local --enable-rubyinterp --enable-python3interp --disable-gpm --enable-gui=no --enable-multibyte

在我的 src/auto/config.log 文件中,我看到:

configure:5442: checking --enable-python3interp argument   
configure:5451: result: yes  
configure:5456: checking for python3  
configure:5489: result: no

我在谷歌上搜索了一些内容,并发现了 这篇文章,于是我尝试创建 python3.2 的符号链接,然后像这样运行 configure:

./configure --prefix=/usr/local --enable-rubyinterp --enable-python3interp --disable-gpm --enable-gui=no --enable-multibyte --with-python3-config-dir=/usr/local/Cellar/python3/3.2/Frameworks/Python.framework/Versions/3.2/lib/python3.2/config-3.2m

我的日志显示了同样的错误。我需要做什么才能使vim编译支持Python3?

并且,不:我不想使用MacVim。


➜ ls -al /System/Library/Frameworks/Python.framework/Versions 
total 16
drwxr-xr-x   7 root  wheel  238 May 28 15:33 .
drwxr-xr-x   7 root  wheel  238 Sep 21  2010 ..
drwxr-xr-x   8 root  wheel  272 Sep 17  2010 2.3
drwxr-xr-x  12 root  wheel  408 Dec  1 12:49 2.5
drwxr-xr-x  12 root  wheel  408 Dec  1 12:49 2.6
lrwxr-xr-x   1 root  wheel   70 May 28 15:33 Current -> /usr/local/Cellar/python3/3.2/Frameworks/Python.framework/Versions/3.2
lrwxr-xr-x   1 root  wheel    3 Sep 17  2010 old-Current -> 2.6

➜ which python3.2
/usr/local/bin/python3.2
更新:我已经按照这篇帖子的方式,使用Homebrew安装了Python 2.7.1,并且已经让它工作了,但是对于Python 3仍然没有成功。
3个回答

6

配置脚本存在问题。自从Python 3.2版本以来,配置和包含目录中都包含了abiflag(详见PEP 3149)。

下一个问题是配置脚本解析Python配置时,链接器的标志对于框架构建不正确,因此配置脚本中的测试程序无法构建。

我已经向Vim发送了补丁,并已被包含在其中(Mercurial仓库中有该补丁)。

`./configure --enable-python3interp vi_cv_path_python3=/usr/local/bin/python3.2`

应该可以工作。

Vim补丁: https://github.com/codedreality/vim/tree/fix-python3x-support

MacVim补丁: https://github.com/codedreality/macvim/tree/fix-python3x-support


Vim补丁的链接已经失效了,有什么建议吗? - user1994702
路径链接对我来说仍然无法使用。请建议一些解决方法,因为它仍然无法使用。 - vitiral
Post和Patch是从2011年开始的,也许自那时以来vim已经发生了变化,需要再次打补丁,而Homebrew已经发生了很多变化,以支持2.x和3.x版本的Python构建。 - CodedReality

2
当您测试是否成功时,请确保使用由构建创建的Vim二进制文件,而不是mvim脚本。即使您在源树上调用版本,mvim也会首先查找MacVim.app在/Applications/目录中。也许这会给您带来一些乐趣:
./configure \
  --enable-python3interp=dynamic \
  --with-python3-config-dir=/usr/local/Cellar/python3/3.2/Frameworks/Python.framework/Versions/3.2/lib/python3.2/config/

没有成功。我的日志中出现了相同的错误:checking --enable-python3interp argument... dynamic / checking for python3... no。而且,我知道我正在检查正确的二进制文件:(在vim src目录中)➜ ./src/vim --version - neezer
尝试使用autoconf变量强制执行Python版本查找。./configure --enable-python3interp=dynamic --with-python3-config-dir=blah/blah vi_cv_path_python3=/usr/local/bin/python3.2 - synthesizerpatel
不,那也不行。它似乎在配置输出中(https://gist.github.com/1014434)捕获了它,但变量在/src/auto/config.mk(https://gist.github.com/1014435)中没有定义,并且编译后的二进制文件仍然读取“-python3”。还有其他想法吗? - neezer

0

我将macvim的标题栏颜色改为了黑色。我的macvim配色方案是ayu dark。 更改macvim MMWindow.m 的第93行,添加以下代码:

[self setTitleVisibility:NSWindowTitleHidden];
[self setTitlebarAppearsTransparent:YES];
self.backgroundColor = NSColor.blackColor;

使用以下命令编译源代码:

./configure --with-features=huge --enable-multibyte --with-macarchs=x86_64 --enable-perlinterp --enable-rubyinterp --enable-tclinterp --enable-terminal --enable-python3interp --with-properly-linked-python2-python3 --enable-python3interp=yes --enable-cscope 

在此输入图片描述


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