VIM有错Python版本编译(而不是需要的版本工作)

简单来说:

我有vim的编译与蟒蛇首选版本的一个问题。
当我使用--enable-pythoninterp它与系统的OSX Python版本编译。
当我使用--enable-pythoninterp=dynamic我的vim得到一个错误,而试图:py import sys

以下是我更详细地在做:

% git clone https://github.com/b4winckler/macvim.git % cd macvim % ./configure --enable-pythoninterp \ --with-python-config-dir=/usr/local/lib/python2.7/config <- this option has no affects on result ... checking for python... /usr/local/bin/python checking Python version... 2.7 checking Python is 1.4 or better... yep checking Python's install prefix... /usr/local checking Python's execution prefix... /usr/local checking Python's configuration directory... /usr/local/lib/python2.7/config ... % make ... ** BUILD SUCCEEDED ** % open src/MacVim/build/Release/MacVim.app

在打开的MacVim I型:

:py import sys; print (sys.version, sys.executable) ('2.6.1 (r261:67515, Jun 24 2010, 21:47:49) [GCC 4.2.1 (Apple Inc. build 5646)]', '/usr/bin/python')

为什么2.6.1
为什么/usr/bin/python
我默认的Python 2.7! 而且住在/usr/local/bin/python
我整天寻找解决方案。 而且我发现它。 它是=动态属性(但这种方法早已不是解释)。

从那以后,我试图重新编译vim的动态蟒蛇:

% ./configure --enable-pythoninterp=dynamic ... output the same ... % make % open src/MacVim/build/Release/MacVim.app

在打开的MacVim:

:py import sys

这里来的错误:

E370: Could not load library libpython2.7.a E263: Sorry, this command is disabled, the Python library could not be loaded.



我的OSX版本10.6.8是。
默认的Python版本是2.7。

% which python /usr/local/bin/python

任何人都可以解释Python是如何编译过程中融入VIM?
以及如何修复与libpython2.7.a的错误?



更新:我再也不用在这个问题描述的环境。 所以我无法测试新的答案。 但是,人类的其余部分将感谢您的帮助。

--------------解决方案-------------

我有同样的问题。 我从源代码编译的MacVim,并试图从MacPorts的使用Python 2.7版本:

/opt/local/bin/python

某些模块没有找到,例如os模块。 这样做的原因是里面的MacVim PYTHONPATH变量是错误的!

为了测试,开放的MacVim和类型:

:python print sys.path

我得到了以下路径(注意结局,这是废话):

...
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.5/'
...

我相信原因是在连接器旗“-framework蟒”。 这拿起了错误, 系统的Python框架。 如果我更改线路中src/auto/configure从脚本:

if test "x$MACOSX" = "xyes" && ${vi_cv_path_python} -c \
"import sys; sys.exit(${vi_cv_var_python_version} < 2.3)"; then
vi_cv_path_python_plibs="-framework Python"

if test "x$MACOSX" = "xyes" && ${vi_cv_path_python} -c \
"import sys; sys.exit(${vi_cv_var_python_version} < 2.3)"; then
vi_cv_path_python_plibs="-F/opt/local/Library/Frameworks -framework Python"

再次运行配置,之后使清洁,编译的MacVim和按预期工作。 -F标志告诉连接器在目录中找到以下框架。 MacPorts的安装此目录中Python.framework,情况因人而异。

我作为你(尝试编译的MacVim使用Python 2.7),我终于成功地做一个同样的probleme。

首先, dynamic 选项不起作用! 我见过的网,太 ,但如果你看一下配置脚本(或只是帮助)它无法识别。 因此 ,不要使用它。 这等同于禁止蟒蛇,这解释了为什么:PY不起作用。 您还没有与Python编写的MacVim。

我已经在最后做的是重新安装的Python 2.7.2使用Python网站上正式安装。 那么你应该有一个config/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/config

尝试使用下面的选项重新编译

% ./configure --enable-pythoninterp \
--with-python-config-dir=/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/config/python2.7/config

这给了我一个错误在编译结束,但如果我不理它,并启动该工程二进制反正。 这个问题可能是具体 ​​到我的电脑(这似乎是相关的图标安装目录)。 祝你好运。

请注意,是我设法编译的MacVim与Python 2.7(这是我的目标)没有办法的办法不一定与Python我的运行库版本编译的方式。

确保正确的“巨蟒”是你的$ PATH中,使用“命令”时,这可能并非如此。

还有就是要设置蟒蛇二进制一个选项,使用(如果你不能修改$ PATH):

export vi_cv_path_python=/usr/local/bin/python

但尽管如此,以enable-pythoninterp=dynamic运行它时未能加载libpython2.7.a“:蟒蛇进口SYS”,称“E448:无法加载库函数_PyArg_Parse_SizeT”。

我的解决办法是删除这是从建立以前,我用它来与OSX蟒蛇创建的配置缓存文件。

然后我安装了自制的一个新的Python版本,并不能得到.configure采取新的Python版本,即使我更新了我的PATH变量和蟒蛇显示正确的Python版本。

删除缓存文件和运行配置再次解决了我的问题。

rm src/auto/config.cache
./configure --enable-pythoninterp

也许它可以帮助任何人。

这听起来像你的问题的根源在于,Python的是寻找到错误的目录。 这应该是你看看改正,担心融入Vim前的第一部分。 所有Mac电脑已经安装了机器上的Python版本,在/ usr / local / bin目录/蟒蛇。 通常由您拿到机器的时候,你要安装Python的最新版本。 新版本应位于:

% which python
/Library/Frameworks/Python.framework/Versions/2.7/bin/python

我不知道你是怎么安装Python来开始的,但最简单的方法是使用easy_install或点子。 这是一个很好的链接。 如果不解决您的路径问题,那么你应该在这里看到。 希望这是你所需要的,并用vim的问题将得到解决。

我发现上面的回答是的MacVim关闭缓冲区时dangerous--造成致命错误。

这里找到了答案更稳定:Vim的失败与OS X的Python编译

我只是有相同的愿望,并履行MacPorts的它无需额外摆弄:

$ port info macvim
MacVim @7.3.snapshot66, Revision 2 (editors)
Variants: big, cscope, [+]huge, perl, python, python25, python26, python27, python31, python32, python33, ruby, ruby19, tcl, universal, xim
...

$ sudo port install macvim +python27
---> Computing dependencies for MacVim
---> Fetching archive for MacVim
---> Attempting to fetch MacVim-7.3.snapshot66_2+huge+python27.darwin_10.x86_64.tbz2 from http://jog.id.packages.macports.org/macports/packages/MacVim
---> Attempting to fetch MacVim-7.3.snapshot66_2+huge+python27.darwin_10.x86_64.tbz2 from http://packages.macports.org/MacVim
---> Attempting to fetch MacVim-7.3.snapshot66_2+huge+python27.darwin_10.x86_64.tbz2 from http://mse.uk.packages.macports.org/sites/packages.macports.org/MacVim
---> Fetching distfiles for MacVim
---> Verifying checksum(s) for MacVim
---> Extracting MacVim
---> Applying patches to MacVim
---> Configuring MacVim
---> Building MacVim
---> Staging MacVim into destroot
---> Installing MacVim @7.3.snapshot66_2+huge+python27
---> Deactivating MacVim @7.3.snapshot66_2+huge
---> Cleaning MacVim
---> Activating MacVim @7.3.snapshot66_2+huge+python27
---> Cleaning MacVim
---> Updating database of binaries: 100.0%
---> Scanning binaries for linking errors: 100.0%
---> No broken files found.

注:正如你可以看到上面( deactivating ),我试过的默认(预编译)的MacVim第一(即sudo port install macvim - > MacVim @7.3.snapshot66_2+huge ),并且它没有Python支持编译。

后加入+python27变种,运行:py import sys; print (sys.version, sys.executable) :py import sys; print (sys.version, sys.executable)新安装的MacVim里面现在返回:

('2.7.3 (default, Oct 22 2012, 06:12:28) \n[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)]', '/Applications/MacPorts/MacVim.app/Contents/MacOS/Vim')

这恰好是同我在我的shell(根据您的$PATHport select python ):

$ which python
/opt/local/bin/python
$ python
Python 2.7.3 (default, Oct 22 2012, 06:12:28)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
...

我发现这个问题的修补程序涉及删除源和重新获得它。 我敢肯定,汞有办法只是删除本地修改,但我无法真正找到它的帮助文件。 我没有使用的MacVim,但我怀疑你的问题是一样的道理。

翻翻配置脚本的输出看来,它缓存它以前使用的Python安装,只是使用了。

分类:蟒蛇 时间:2015-03-14 人气:63
本文关键词: OSX,蟒蛇,VIM,编译
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.513 (s). 10 q(s)