2014-02-14 65 views
1

==環境「PIP安裝JEP」 得到了一個錯誤 「LD:庫找不到-lpython2.7」

  • 的Mac OSX 10.9.1
  • 安裝了Python 2.7.3,蟒蛇3.3
  • 蟒蛇安裝目錄:/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

,但它不工作。

有沒有人可以解決這個問題?

回答

3

快速查看jep,看起來它的安裝過程在setup.py中,對於在哪裏找到Python解釋器共享庫進行鏈接,似乎做了一些簡化和不正確的假設。由於它在OS X上的地位,它似乎允許庫默認搜索路徑默認爲標準庫路徑,包括/usr/lib。如果你沒有使用系統提供的Pythons之一,就像你的情況一樣,在那裏找不到正確的庫。 jep應該做的是使用與正在使用的編譯器相對應的命令來查找共享庫的位置;例如,如果使用的是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命令行工具包的Xcode 5等存在/usr/lib沒有libpython2.7.dylib 。如果這樣做,通過運行:

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項目bug追蹤器上打開一個問題來解決問題。