mac osx 10.10 pip 安装问题

在mac osx 升级到 10.10(Yosemite)以后,用pip以及easy_install 安装python包的时候,如果包需要编译,就会编译失败,错误如下:

build/temp.macosx-10.10-x86_64-2.7/greenlet.o -o build/lib.macosx-10.10-x86_64-2.7/greenlet.so

ld: file not found: python.exe

clang: error: linker command failed with exit code 1 (use -v to see invocation)

error: command ‘clang‘ failed with exit status 1

xcode升级到6.1以后python安装编译默认clang

当时很困惑为什么在osx中出现python.exe, stackoverflow 上说这只是osx中默认的名称,没有实际意义,可忽略

在stackoverflow中给的答案:

可以在 pip install 之前加上 ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future 忽略这个报错,但是这并没有解决问题

真正的问题在于python本身的问题,造成不能正常安装

问题在于:在 Python 的源码里configure.ac :

        case $ac_sys_system/$ac_sys_release in
        ...
        Darwin/*)
                # Use -undefined dynamic_lookup whenever possible (10.3 and later).
                # This allows an extension to be used in any Python

                if test ${MACOSX_DEPLOYMENT_TARGET} ‘>‘ 10.2
                then
                        if test "${enable_universalsdk}"; then
                                LDFLAGS="${UNIVERSAL_ARCH_FLAGS} -isysroot ${UNIVERSALSDK} ${LDFLAGS}"
                        fi
                        LDSHARED=‘$(CC) -bundle -undefined dynamic_lookup‘
                        LDCXXSHARED=‘$(CXX) -bundle -undefined dynamic_lookup‘
                        BLDSHARED="$LDSHARED"
                else
                        LDSHARED=‘$(CC) -bundle‘

问题出在   if test ${MACOSX_DEPLOYMENT_TARGET} ‘>‘ 10.2 

版本10.10 < 10.2 真正的问题来了

解决办法

首先需要安装Command-Line Tool(如果没有安装 执行命令xcode-select --install 进行安装)

在python2.7.6以下都有这个问题,最简单的办法是安装2.7.8以上

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。