在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以上
原文地址:http://www.cnblogs.com/iminic/p/4167670.html