Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vim无法在OS X上使用python进行编译_Python_Macos_Vim_Compilation - Fatal编程技术网

Vim无法在OS X上使用python进行编译

Vim无法在OS X上使用python进行编译,python,macos,vim,compilation,Python,Macos,Vim,Compilation,我一直在尝试编译vim 7.3,在macosx10.6上支持python2.7。Vim本身编译得很好,但嵌入的python却不太好 我采取的步骤: hg clone https:/vim.googlecode.com/hg/ vim cd vim/src ./configure --without-x --disable-gui --disable-darwin \ --enable-pythoninterp --with-features=huge make make

我一直在尝试编译vim 7.3,在macosx10.6上支持python2.7。Vim本身编译得很好,但嵌入的python却不太好

我采取的步骤:

hg clone https:/vim.googlecode.com/hg/ vim
cd vim/src
./configure --without-x --disable-gui --disable-darwin \
            --enable-pythoninterp --with-features=huge
make
make install
这给了我一个工作的vim,但没有python

auto/config.log表示存在文件错误:

configure:5387: checking if compile and link flags for Python are sane
configure:5404: gcc -o conftest -g -O2 
     -I/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 
     -DPYTHON_HOME=\"/Library/Frameworks/Python.framework/Versions/2.7\"   
     -L/usr/local/lib conftest.c  
     -L/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/config 
     -lpython2.7 -ldl -framework CoreFoundation 
     -u _PyMac_Error Python.framework/Versions/2.7/Python >&5
i686-apple-darwin10-gcc-4.2.1: Python.framework/Versions/2.7/Python: No such file or directory

<command-line>: warning: missing terminating " character
configure:5404: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define UNIX 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_WAIT_H 1
| #define FEAT_HUGE 1
| #define USE_XSMP_INTERACT 1
| /* end confdefs.h.  */
| 
| int
| main ()
| {
|  
|   ;
|   return 0;
| }
configure:5408: result: no: PYTHON DISABLED
configure:5387:检查Python的编译和链接标志是否正常
配置:5404:gcc-o conftest-g-O2
-I/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7
-DPYTHON\u HOME=\“/Library/Frameworks/Python.framework/Versions/2.7\”
-L/usr/local/lib conftest.c
-L/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/config
-lpython2.7-ldl-framework CoreFoundation
-u_PyMac_Error Python.framework/Versions/2.7/Python>&5
i686-apple-darwin10-gcc-4.2.1:Python.framework/Versions/2.7/Python:没有这样的文件或目录
:警告:缺少“终止”字符
配置:5404:$?=1
配置:失败的程序是:
|/*confdefs.h*/
|#定义包_名称“”
|#定义包_TARNAME“”
|#定义包_版本“”
|#定义包_字符串“”
|#定义包_BUGREPORT“”
|#定义程序包_URL“”
|#定义UNIX 1
|#定义STDC#U标题1
|#定义HAVE_SYS_WAIT_H 1
|#定义壮举#巨大1
|#定义使用_XSMP_交互1
|/*end CONDEFS.h*/
| 
|int
|主要()
| {
|  
|   ;
|返回0;
| }
配置:5408:结果:否:禁用PYTHON
无论运行configure时是否使用--with python conf dir选项,我都会遇到这个错误。它看起来像是
-u\u PyMac\u error python。framework/Versions/2.7/python
是问题的根源,但我不确定接下来该怎么办


有什么建议吗?

这不是对你问题的直接回答,但是安装并运行
sudo-port-install-vim+python27
是一种方法。

Romaill给出了一个公认的答案:MacVim附带了命令行版本的vim和gui版本——这是我所不知道的——而且我一直都有dy成功地用Python2.7编译了MacVim(没有我在标准vim源代码中遇到的任何问题)

使用macports或自制软件不是我考虑的选项


注意:如果有人能把这个答案交给Romaill,请继续这样做。我只回答我自己来结束这个问题。

事实证明这个错误实际上在Python Makefile中,信不信由你

打开文件

/usr/local/Cellar/python/2.7.2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/config
或者选择适合您的路径,并搜索
PyMac_Error
。它应该位于定义
LINKFORSHARED
的行上,在这行上,您需要将
PYTHONFRAMEWORKDIR
更改为
PYTHONFRAMEWORKINSTALLDIR
。然后返回到您的vim源代码并进行配置,一切都会顺利进行

还要确保将OS X的Python框架符号链接到自制酒窖中的框架:

/Library/Frameworks/Python.framework/Versions/2.7
/Library/Frameworks/Python.framework/Versions/Current
/System/Library/Frameworks/Python.framework/Versions/2.7
/System/Library/Frameworks/Python.framework/Versions/Current
都应该指向

/usr/local/Cellar/python/2.7.2/Frameworks/Python.framework/Versions/2.7

我不太清楚为什么我在这么多地方都安装了它,或者这是不是很糟糕,但它确实存在。

我运行的是10.6.7,苹果提供的最新python是2.6。你确定你已经安装了2.7,并且它是否位于
系统/库/框架/python.framework/
?如果你想使用不同的python,你可能需要提供它的版本路径在
/configure
时间,或者确保它是默认的
python
。无论如何,MacVim带有一个功能齐全的命令行
vim
,为什么不试试呢?Romaini,Python2.7肯定安装在正确的位置,并且设置为当前的python。
/configure
无论何时都会失败python检查她:我是否提供了路径。
\u PyMac\u Error
位显然提供了一个相对路径,这是导致问题的原因。我使用的是MacVim,但我不知道我可以将MacVim作为命令行应用程序调用。它实际上解决了问题,因为我已经用Python 2.7编译了它,它是当前的Vim 7.3(mac 10.6 vim是7.2-这就是我开始走这条路的原因)。这很酷。很抱歉,我没有能够帮助解决Python问题。我曾经走过同样的路(使用ruby,这是一堆很酷的插件所需要的)。在MacVim的捆绑包中发现
vim
可执行文件一下子解决了很多问题。Romaill,我想如果没有简单的答案,我可能最终会看看MacVim是如何处理这个问题的(他们必须做一些与标准vim不同的事情来处理python选项,因为MacVim使用python超简单编译).谢谢你的提示!如果你想正式回答这个问题,我们将以此作为答案。“实用性胜过纯洁性。”"正如python人所说。这个问题实际上是存在的,但不清楚解决方案应该是什么。显然Vim一开始不应该偷看LINKFORSHARED。无论如何,上面的修复是有效的。我不确定macvim,但我在PythonMagick中设置了一个python_EXTRA_LDFLAGS变量,
/configure python,从而绕过了这个特定的错误_EXTRA_LDFLAGS=“-u_PyMac_Error/Library/Frameworks/Python.framework/Versions/2.7/Python”
。如果您不想修改系统makefile,可能有更干净的解决方案。是否有此解决方案的更新版本?我有一个链接错误,但当我检查Python的makefile时,它说
PYTHONFRAMEWORKINSTALLDIR
。在最新版本的macOS SIP中,阻止用户添加到/system/Library。是的,pr这个问题还没有解决,现在
make
无法工作,Xcode也无法打开。我的电脑现在真的塞满了东西。