2011-06-27 12 views
7

我一直在试图编译VIM 7.3蟒蛇2.7支持上MAC OS X 10.6。 Vim本身编译得很好,但是嵌入式python并没有太多。Vim的失败与Python编写关于OS X

我所采取的步骤:

hg clone https:/vim.googlecode.com/hg/ vim 
cd vim/src 
./configure --without-x --disable-gui --disable-darwin \ 
      --enable-pythoninterp --with-features=huge 
make 
make install 

这给了我一个工作的vim,但没有蟒蛇。

自动/的config.log表示有一个文件错误:

configure:5387: checking if compile and link flags for Python are sane 
configure:5404: gcc -o conftest -g -O2 
    -I/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 
    -DPYTHON_HOME=\"/Library/Frameworks/Python.framework/Versions/2.7\" 
    -L/usr/local/lib conftest.c 
    -L/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/config 
    -lpython2.7 -ldl -framework CoreFoundation 
    -u _PyMac_Error Python.framework/Versions/2.7/Python >&5 
i686-apple-darwin10-gcc-4.2.1: Python.framework/Versions/2.7/Python: No such file or directory 

<command-line>: warning: missing terminating " character 
configure:5404: $? = 1 
configure: failed program was: 
| /* confdefs.h */ 
| #define PACKAGE_NAME "" 
| #define PACKAGE_TARNAME "" 
| #define PACKAGE_VERSION "" 
| #define PACKAGE_STRING "" 
| #define PACKAGE_BUGREPORT "" 
| #define PACKAGE_URL "" 
| #define UNIX 1 
| #define STDC_HEADERS 1 
| #define HAVE_SYS_WAIT_H 1 
| #define FEAT_HUGE 1 
| #define USE_XSMP_INTERACT 1 
| /* end confdefs.h. */ 
| 
| int 
| main() 
| { 
| 
| ; 
| return 0; 
| } 
configure:5408: result: no: PYTHON DISABLED 

我得到这个错误我是否运行有或没有--with-python的-conf的-DIR选项来配置。它看起来像是-u _PyMac_Error Python.framework/Versions/2.7/Python是问题的根源,但我不确定该从哪里出发。

有什么建议吗?

+1

我正在运行10.6.7,并且最新的Apple提供的python是2.6。你确定你已经安装了2.7,它位于'System/Library/Frameworks/Python.framework /'中吗?如果你想使用不同的python,你可能需要在'./configure'时提供它的路径,或者确保它是默认的'python'。无论如何,MacVim带有全功能的命令行'vim',为什么不尝试呢? – romainl

+0

Romaini,** python 2.7 **绝对安装在正确的位置,并设置为** Current ** python。无论我是否提供路径,'。/ configure'都不通过python检查。 '_PyMac_Error'位显然提供了导致问题的相对路径。 MacVim是我使用的,但我不知道我可以调用MacVim作为命令行应用程序。它实际上解决了这个问题,因为我已经将它编译为Python 2.7并且它是当前的Vim 7.3(mac 10.6 vim是7.2 - 这是我开始走这条路的原因)。 –

+0

很酷。很抱歉,我一直无法帮助解决Python问题。我一次走同一条路(红宝石需要一些很酷的插件)。发现MacVim捆绑包中的'vim'可执行文件解决了许多问题。 – romainl

回答

0

Romainl了公认的答案:的MacVim附带vim的命令行版本以及GUI版本 - 这是我不知道的 - 我已经成功编译的MacVim与Python 2.7(没有任何的我遇到的问题是使用标准的vim源码)。

使用macports或homebrew不是我正在看的选项。

N.B.如果任何人都可以将这个答案交给Romainl,请继续这样做。我只是回答自己关闭这一个。

2

这不是一个直接的回答你的问题,但安装macports和运行sudo port install vim +python27是到达那里的一种方法。

7

发现这个错误实际上是在Python Makefile中,不管你信不信。

打开文件

/usr/local/Cellar/python/2.7.2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/config 

或任何合适的路径是你,和搜索PyMac_Error。它应该在定义LINKFORSHARED的行上,并且在此行上,您需要将PYTHONFRAMEWORKDIR更改为PYTHONFRAMEWORKINSTALLDIR。然后回到你的vim源文件和./configure,一切都应该顺利。

另外,还要确保你的符号链接OS X的Python框架在家酿酒窖的那些:

/Library/Frameworks/Python.framework/Versions/2.7 
/Library/Frameworks/Python.framework/Versions/Current 
/System/Library/Frameworks/Python.framework/Versions/2.7 
/System/Library/Frameworks/Python.framework/Versions/Current 

应该都指向

/usr/local/Cellar/python/2.7.2/Frameworks/Python.framework/Versions/2.7 

真的不知道为什么我在这么多地方了吧,或者如果那是不好的,但它是。

+1

此问题实际上是[在bugs.python.org上进行跟踪](http://bugs.python.org/issue3588),但尚不清楚该解决方案应该是什么。显然,Vim不应该首先偷看LINKFORSHARED。无论如何,上面的修复工作。 –

+0

我对macvim不太确定,但是我通过设置PYTHON_EXTRA_LDFLAGS变量来解决PythonMagick中的这个特定错误:'./configure PYTHON_EXTRA_LDFLAGS =“ - u _PyMac_Error /Library/Frameworks/Python.framework/Versions/2.7/Python” 。如果你不想修改系统的makefile,也许有一个更清洁的解决方案。 – gatoatigrado

+0

是否有此解决方案的更新版本?我是sill有链接错误,但是当我检查Python的makefile时,它说'PYTHONFRAMEWORKINSTALLDIR'。在最近版本的macOS中,SIP防止用户添加到/ System/Library。我做了,问题没有解决,现在'make'不起作用,Xcode不能打开。我的电脑现在真的塞满了。 – yeeeeee