2014-04-11 77 views
9

我編譯了Python 2和Python 3支持的Vim開發版本。 vim --version的輸出中有+python/dyn+python3/dyn。我跑了 摹 ./configure --enable-pythoninterp --enable-python3interp --with-python-config-dir=/usr/lib64/python2.7/config --with-python3-config-dir=/usr/lib64/python3.3/config --with-x --with-features=huge用Python支持編譯Vim,但看不到sys版本

但是在配置文件當我運行:python import sys; print(sys.version)我得到

E448: Could not load library function _PyArg_Parse_SizeT 
E263: Sorry, this command is disabled, the Python library could not be loaded. 

爲什麼會變成這樣?由於YouCompleteMe,我發現它需要Vim編譯2.x支持。

感謝

+0

它有可能被編譯爲2.x的不同版本,你正在使用什麼?這只是一個猜測,但C擴展肯定需要針對特定​​版本進行編譯。 –

+1

我有[同樣的問題在Windows之前](http://stackoverflow.com/questions/22349930/how-can-i-add-with-python-options-by-building-gvim-vim-from-source- code-in-wi),原因是我的python/python3的版本是** 64bit **。在我安裝** 32位python/python3 **之後,一切都很好。 – Marslo

+1

爲什麼它是64位vs 32位? – thaweatherman

回答

13

我對我的Debian盒子類似的問題。如果您使用的是基於Debian的系統,那麼您將無法同時加載兩個Python庫。這就是爲什麼當你設置--enable-python-interp--enable-python3-interp時,它們總是加載/ dyn後綴。

如果你的vim插件不需要兩個版本,你應該選擇一個版本並堅持下去。以下鏈接提供了更多信息。

Explained by Debian maintainer

Vim Python Support

附: - 如果你在Windows上也嘗試過這種方法,那麼加載Python版本將會起作用,所以/ dyn不是那裏的問題。

+0

非常感謝。這解決了我的問題! –