简单来说:
我有一个问题,编译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。