2015-12-13 183 views
2

試圖用IPython中的rpy2.ipython(原名「rmagic」)的擴展,讓互動R(%R系魔法和%%R細胞魔術函數),我收到以下錯誤rpy2.ipython錯誤...與大熊貓/ numpy的

louis ~ $ python 
Python 3.5.1 |Anaconda 2.4.0 (64-bit)| (default, Dec 7 2015, 11:16:01) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux 
Type "help", "copyright", "credits" or "license" for more information. 

>>> import rpy2.ipython 
Traceback (most recent call last): 
    File "/home/louis/anaconda3/lib/python3.5/site-packages/pandas/__init__.py", line 7, in <module> 
    from pandas import hashtable, tslib, lib 
    File "pandas/src/numpy.pxd", line 157, in init pandas.hashtable (pandas/hashtable.c:38262) 
    File "/home/louis/anaconda3/lib/python3.5/site-packages/numpy/__init__.py", line 180, in <module> 
    from . import add_newdocs 
    File "/home/louis/anaconda3/lib/python3.5/site-packages/numpy/add_newdocs.py", line 13, in <module> 
    from numpy.lib import add_newdoc 
    File "/home/louis/anaconda3/lib/python3.5/site-packages/numpy/lib/__init__.py", line 18, in <module> 
    from .polynomial import * 
    File "/home/louis/anaconda3/lib/python3.5/site-packages/numpy/lib/polynomial.py", line 20, in <module> 
    from numpy.linalg import eigvals, lstsq, inv 
    File "/home/louis/anaconda3/lib/python3.5/site-packages/numpy/linalg/__init__.py", line 51, in <module> 
    from .linalg import * 
    File "/home/louis/anaconda3/lib/python3.5/site-packages/numpy/linalg/linalg.py", line 29, in <module> 
    from numpy.linalg import lapack_lite, _umath_linalg 
ImportError: /home/louis/anaconda3/lib/python3.5/site-packages/numpy/linalg/lapack_lite.cpython-35m-x86_64-linux-gnu.so: undefined symbol: zgelsd_ 

During handling of the above exception, another exception occurred: 

Traceback (most recent call last): 
    File "/home/louis/anaconda3/lib/python3.5/site-packages/rpy2/ipython/rmagic.py", line 59, in <module> 
    from rpy2.robjects import pandas2ri as baseconversion 
    File "/home/louis/anaconda3/lib/python3.5/site-packages/rpy2/robjects/pandas2ri.py", line 6, in <module> 
    from pandas.core.frame import DataFrame as PandasDataFrame 
    File "/home/louis/anaconda3/lib/python3.5/site-packages/pandas/__init__.py", line 13, in <module> 
    "extensions first.".format(module)) 
ImportError: C extension: /home/louis/anaconda3/lib/python3.5/site-packages/numpy/linalg/lapack_lite.cpython-35m-x86_64-linux-gnu.so: undefined symbol: zgelsd_ not built. If you want to import pandas from the source directory, you may need to run 'python setup.py build_ext --inplace' to build the C extensions first. 

During handling of the above exception, another exception occurred: 

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/home/louis/anaconda3/lib/python3.5/site-packages/rpy2/ipython/__init__.py", line 1, in <module> 
    from .rmagic import load_ipython_extension 
    File "/home/louis/anaconda3/lib/python3.5/site-packages/rpy2/ipython/rmagic.py", line 63, in <module> 
    from rpy2.robjects import numpy2ri as baseconversion 
    File "/home/louis/anaconda3/lib/python3.5/site-packages/rpy2/robjects/numpy2ri.py", line 6, in <module> 
    import numpy 
    File "/home/louis/anaconda3/lib/python3.5/site-packages/numpy/__init__.py", line 180, in <module> 
    from . import add_newdocs 
    File "/home/louis/anaconda3/lib/python3.5/site-packages/numpy/add_newdocs.py", line 13, in <module> 
    from numpy.lib import add_newdoc 
    File "/home/louis/anaconda3/lib/python3.5/site-packages/numpy/lib/__init__.py", line 18, in <module> 
    from .polynomial import * 
    File "/home/louis/anaconda3/lib/python3.5/site-packages/numpy/lib/polynomial.py", line 13, in <module> 
    import numpy.core.numeric as NX 
AttributeError: module 'numpy' has no attribute 'core' 

我一直忽略了Anaconda3似乎是建立在RHEL(我在Linux Mint的,這是基於Ubuntu),但現在我想知道如果這可能是原因的事實這裏的問題 - 「C擴展沒有爲我的機器建」?

因爲它是在暢達虛擬環境中,我不知道我怎麼能解決這個問題。

我應該嘗試python setup.py build_ext --inplace~/anaconda3/lib/python3.5/site-packages/pandas

當我通過上述進口例如,步驟:

from numpy.linalg import lapack_lite, _umath_linalg 

沒有錯誤,所以我不能肯定居然還有未建文件,也許它只是一些由另一個變量的屏蔽(如在this question with similar error message but different traceback,即在rpy2錯誤)。

import numpy.core(等)沒有先試圖加載rpy2.ipython作品pip show精細

摘要:

--- 
Metadata-Version: 2.0 
Name: rpy2 
Version: 2.7.5 
--- 
Metadata-Version: 1.1 
Name: numpy 
Version: 1.10.1 
--- 
Metadata-Version: 1.1 
Name: pandas 
Version: 0.17.0 
--- 
Metadata-Version: 2.0 
Name: ipython 
Version: 4.0.1 

(所有地區/home/louis/anaconda3/lib/python3.5/site-packages)從cat /proc/versionlsb_release -a

系統信息:

Linux version 3.13.0-35-generic ([email protected]) (gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1)) #62-Ubuntu SMP Fri Aug 15 01:58:42 UTC 2014 

LSB Version: core-2.0-amd64:core-2.0-noarch:core-3.0-amd64:core-3.0-noarch:core-3.1-amd64:core-3.1-noarch:core-3.2-amd64:core-3.2-noarch:core-4.0-amd64:core-4.0-noarch:core-4.1-amd64:core-4.1-noarch 

Description: Linux Mint 17 Qiana 

回答

0

我懷疑的LAPACK庫的版本不兼容:在運行時,一個拿起您的系統上,在一個numpy的是內置,以及一個R與建造。

在虛擬環境中應該解決這一問題安裝numpy的,R和rpy2從源頭。另一種方法是通知維護者所涉及的anaconda軟件包,並看到它們確認anaconda打包的numpy和R使用相同的LAPACK。