【问题标题】:rpy2 failed to load some bioconductor packagesrpy2 未能加载一些生物导体包
【发布时间】:2015-10-31 11:47:25
【问题描述】:

最近我们的系统将 R 更新为 3.2.1(在一个单独的位置)。从那时起,我在 rpy2 中加载某些包时遇到了麻烦。

我尝试过的:

  • 将 LD_LIBRARY_PATH 设置为当前路径
  • 卸载然后重新安装rpy2
  • 卸载然后重新安装有问题的软件包

当我切换回以前的 R 安装时它工作正常(当然对于旧 R 版本重新安装了 rpy2)。而且它似乎并不影响所有包。

例如,加载“limma”没有问题。但加载 'affy',我在 python 控制台中出现以下错误:

>>> from rpy2.robjects.packages import importr
>>> base = importr('affy')
/mnt/software/anaconda/envs/py2/lib/python2.7/site-packages/rpy2/robjects/packages.py:63: UserWarning: Error in dyn.load(file, DLLpath = DLLpath, ...) :
  unable to load shared object '/mnt/software/R-3.2.1/lib64/R/library/preprocessCore/libs/preprocessCore.so':
  /mnt/software/R-3.2.1/lib64/R/library/preprocessCore/libs/preprocessCore.so: undefined symbol: R_NaN

  return _reval(expr)
/mnt/software/anaconda/envs/py2/lib/python2.7/site-packages/rpy2/robjects/packages.py:438: UserWarning: Error in dyn.load(file, DLLpath = DLLpath, ...) :
  unable to load shared object '/mnt/software/R-3.2.1/lib64/R/library/preprocessCore/libs/preprocessCore.so':
/mnt/software/R-3.2.1/lib64/R/library/preprocessCore/libs/preprocessCore.so: undefined symbol: R_NaN

  env = _get_namespace(rname)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/mnt/software/anaconda/envs/py2/lib/python2.7/site-packages/rpy2/robjects/packages.py", line 438, in importr
    env = _get_namespace(rname)
rpy2.rinterface.RRuntimeError: Error in dyn.load(file, DLLpath = DLLpath, ...) :
  unable to load shared object '/mnt/software/R-3.2.1/lib64/R/library/preprocessCore/libs/preprocessCore.so':
  /mnt/software/R-3.2.1/lib64/R/library/preprocessCore/libs/preprocessCore.so: undefined symbol: R_NaN

在 Ipython Notebook 中:

%load_ext rpy2.ipython

%%R
library(affy)

Error: package or namespace load failed for ‘affy’

我尝试了建议here,但没有成功。

我正在使用 R 3.2.1、生物导体 3.1、rpy2 2.6.1

谢谢!

【问题讨论】:

    标签: python r rpy2 bioconductor


    【解决方案1】:

    错误消息指向 R 包preprocessCore。 尝试再次安装它。如果从 iPython 做所有事情:

    from rpy2.robjects import r
    r_src = """
    source("http://www.bioconductor.org/biocLite.R")
    biocLite("preprocessCore")
    """
    r(r_src)
    

    完成后,如果安装成功完成,它应该可以工作:

    from rpy2.robjects.packages import importr
    base = importr('affy')
    

    【讨论】:

    • 谢谢!这解决了affy的问题。我继续测试其他包'simpleaffy'。遇到了同样的问题。所以我做了你为安装“proprocessCore”所做的同样的事情:XML、RSQllite、genefilter、XVector……而且搜寻仍在继续。为什么会发生这些。有没有办法解决所有问题?
    • 我不知道为什么会这样。您的系统/安装似乎无法将软件包的 .so 与正确的 R 共享库链接。
    猜你喜欢
    • 2013-06-04
    • 1970-01-01
    • 2017-07-02
    • 1970-01-01
    • 2015-03-31
    • 2020-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多