2012-11-08 27 views
1

我試圖安裝python包pandas將源碼安裝的熊貓鏈接到自制的python

我使用home-brew/easy_install/pip安裝了所有我現有的python設備,但是pip和easy_install都在pandas上失敗 - 聲稱我沒有numpy> 1.6(儘管在python numpy.__version__中返回1.6.2 )。

儘管如此,pip install numpy --upgrade報告說我是最新的。

爲了解決這個問題,我將git克隆了源代碼,然後在我的/Library/Python/...目錄中運行python setup.py install。它似乎構建好,但是當我導入熊貓時,我收到一個錯誤,我不知道該怎麼做。

任何人都可以幫助我將編譯的庫鏈接到我現有的安裝?

錯誤如下:

dlopen(/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas-0.9.1.dev_5a152bd-py2.7-macosx-10.7-x86_64.egg/pandas/lib.so, 2): Symbol not found: _floatify 
    Referenced from: /usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas-0.9.1.dev_5a152bd-py2.7-macosx-10.7-x86_64.egg/pandas/lib.so 
Expected in: flat namespace 
in /usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas-0.9.1.dev_5a152bd-py2.7-macosx-10.7-x86_64.egg/pandas/lib.so 
Traceback (most recent call last): 
File "<stdin>", line 1, in <module> 
File "/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas-0.9.1.dev_5a152bd-py2.7-macosx-10.7-x86_64.egg/pandas/__init__.py", line 10, in <module> 
import pandas.lib as lib 
ImportError: dlopen(/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas-0.9.1.dev_5a152bd-py2.7-macosx-10.7-x86_64.egg/pandas/lib.so, 2): Symbol not found: _floatify 
Referenced from: /usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas-0.9.1.dev_5a152bd-py2.7-macosx-10.7-x86_64.egg/pandas/lib.so 
Expected in: flat namespace 
in /usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas-0.9.1.dev_5a152bd-py2.7-macosx-10.7-x86_64.egg/pandas/lib.so 
+0

你使用的是virtualenv嗎? – Aman

+0

此問題的解決方案是刪除'/ System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python'中找到的numpy版本。爲了解決這個問題,我不得不'釀造卸載python',並使用系統python來導入numpy,然後打印numpy .__ version__這確認它是舊的。我想通過'print(numpy)'確定硬殼顛簸的位置,最後'cd'進入目錄和'sudo rm -r numpy'。只有在這樣做完成後,才能「安裝pandas」工作 - 這意味着我不需要「克隆」它。 – ricardo

回答

0

這是討論和解決在GitHub上:https://github.com/pydata/pandas/issues/2188。這個問題不得不由於Clang的C99行爲w.r.t.內聯C函數。

+0

我刪除了,並git克隆新的下來,現在我看到:「提高ImportError('C擴展未建:如果您已安裝' ImportError:C擴展未建:如果您已安裝已驗證,您不是從源碼目錄「。奇怪的是,當我嘗試和'pip install pandas'時,pip仍然無法看到我的NumPy.ip和easy_install肯定可以看到我的numpy是最新的,所以我認爲這是一個熊貓問題。慚愧,因爲我真的想讓大熊貓工作,併購買你的書友。 – ricardo

+0

你是否在''git clone'中安裝了'python setup.py install'(pandas有C必須構建的擴展,並且你不應該從源代碼導入熊貓如果你的環境有問題,你應該考慮100%免費的Anaconda CE發行版,它包含了你需要的所有東西。 –

+0

是的,我做了'python setup.py instal l'但我確實在'/ Library/Python/...'文件夾中執行了操作,並且在構建後我確實嘗試導入。我用'pip'來獲得'Cython'。我該怎麼做呢? – ricardo

0

修復了我的MBP上的根問題(pip install pandas失敗),然後在另一個盒子上測試它 - 問題似乎是mac安裝隨附的舊版numpy和隨後的新版本之間的衝突使用pip進行安裝。熊貓看到了舊的numpy,並失敗了。

要解決這個問題,請cd到默認軟件包的位置。你可能是我的一樣:

$ cd /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/ 
$ sudo rm -r numpy 

$ sudo pip install pandas 

有了這樣的方式,sudo pip install pandas爲我工作在兩個箱子。