我在用首选python版本编译vim时遇到问题。
当我使用--enable-pythoninterp
时,它与系统OSX python版本一起编译。
当我使用--enable-pythoninterp=dynamic
时,我在尝试:py import sys
时在vim中得到一个错误
% 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')
为什么{
为什么/usr/bin/python
?
我的默认python是2.7!它生活在/usr/local/bin/python
我整天都在寻找解决办法。我找到了。它是=dynamic属性(但是这个解决方案没有解释)。
之后,我尝试用动态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修复错误?
更新:我不再拥有问题中描述的环境。所以我无法测试新答案。但人类的剩余部分将感谢你的帮助。
我的解决方案是删除配置缓存文件,该文件是从我使用OSX附带的python的先前构建中创建的。
然后,我用自制程序安装了一个新的python版本,但无法获取。请配置为使用新的python版本,即使我更新了路径变量,并且哪个python显示了正确的python版本。
删除缓存文件并再次运行configure解决了我的问题。
也许这对任何人都有帮助。
我也有同样的问题。我从源代码处编译了Macvim,并尝试使用macports中的python版本2.7:
找不到某些模块,例如操作系统模块。原因是PYTHONPATH变量在macvim中是错误的!
要测试,请打开macvim并键入:
我得到了以下路径(注意结尾,这是胡说八道):
我认为原因是链接器标志“-framework Python”。这就搞错了,即系统python框架。如果我将
src/auto/configure
脚本中的行更改为:到
再次运行configure,在make clean之后, Macvim按预期编译和工作。F标志告诉链接器在哪个目录中查找以下框架。Macports在此目录YMMV中安装Python.framework。
我遇到了和你一样的问题(试图用Python2.7编译MacVim),我终于成功地做到了。
首先,
dynamic
选项不起作用!我在网上也看到过提示,但如果您查看配置脚本(或只是帮助),则无法识别它。因此,不要使用它。这相当于禁用python,这解释了为什么:py不工作。你还没有用Python编译MacVim。最后我所做的是使用Pythonwebsite上的官方安装程序重新安装Python 2.7.2。 然后应该在
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/config
中有一个config
。尝试使用以下选项重新编译
这在编译结束时给了我一个错误,但是如果我忽略它并启动二进制文件,不管怎样都可以。这个问题可能是我的电脑特有的(它似乎与图标安装有关)。 祝你好运。
注意,这是我用Python 2.7(这是我的目标)编译MacVim的方法,不一定是用Python的运行时版本编译MacVim的方法。
相关问题 更多 >
编程相关推荐