简单来说:
我有一个问题,编译vim与首选python版本。
当我使用–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我的类型:
: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
我一整天都在寻找解决方案。我找到了这是=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错误?
更新:我不再有这个问题描述的环境。所以我无法测试新的答案。但是,人类的剩余部分将会感谢你的帮助。
我有同样的问题。我从源代码编译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”的原因。这是错误的,即系统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在此目录YMMV中安装Python.framework。