2011-06-27 23 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