“pip install jep”收到错误“ld:找不到-lpython2.7的库”

时间:2014-02-14 06:23:01

标签: python install pip

==环境

  • Mac OSX 10.9.1
  • 已安装python 2.7.3,python 3.3
  • python安装目录:/Library/Frameworks/Python.framework

我尝试使用pip install jep

安装jep

但我收到了错误

`ld: library not found for -lpython2.7`

我尝试添加/Library/Frameworks/Python.framework/Versions/2.7/lib/libpython2.7.dylib 至$ PATH

但它不起作用。

有没有人可以解决这个问题?

1 个答案:

答案 0 :(得分:3)

快速查看jep,它setup.py中的安装程序似乎正在做一些关于在何处找到要与之链接的Python解释器共享库的简化和错误的假设。由于它位于OS X上,它似乎允许库默认搜索路径默认为标准库路径,包括/usr/lib。如果您没有使用系统提供的Pythons之一,就像您的情况一样,那里找不到正确的库。 jep应该做的是使用与正在使用的编译器相对应的python-config命令来查找共享库位置;例如,如果使用python.org 2.7:

$ /usr/local/bin/python2.7-config --ldflags
-L/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/config
-ldl -framework CoreFoundation -lpython2.7

我还猜测你没有在OS X 10.9中为Xcode 5安装完整的Xcode命令行工具包,因此libpython2.7.dylib中没有/usr/lib。如果您这样做,请运行:

xcode-select --install

现在,您将找到libpython2.7.dylib的符号链接,如果您重新运行pip install jep,则不会再出现library not found错误。但是,jep扩展模块现在将链接到系统Python 2.7,而不是链接到您安装的较新的Python 2.7。

$ otool -L /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/jep.so
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/jep.so:
    /System/Library/Frameworks/Python.framework/Versions/2.7/Python (compatibility version 2.7.0, current version 2.7.5)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)

那应该是/Library/Frameworks/Python.framework/Versions/2.7/Python

我建议您在jep项目错误跟踪器上打开一个问题,以解决问题。