rpy2.rinterface.RRuntimeError:错误:.onLoad失败loadNamespace()为 'hdf5r'

问题描述 投票:0回答:1

我写了一个使用python一个3.6脚本(蟒蛇rpy2)。 R版本是3.5.1。当我运行importr('Seurat')这是给我的错误:

/Users/kipnislab/anaconda3/envs/rmain/lib/python3.6/site-packages/rpy2/rinterface/init.py:146:RRuntimeWarning:错误:包或命名空间负载失败“修拉”:.onLoad在loadNamespace失败()为 'hdf5r',细节:致电:好玩(LIBNAME,PKGNAME)错误:错误检索当前的错误处理程序

从中我看到importr('Seurat')需要进口hdf5r和失败。我在虚拟conda环境中工作。启动R和运行library('Seurat')工作得很好。如果我只是开spyder并运行importr('Seurat')它也工作正常,但在终端上运行时:python seurat_clustering.py失败与上述错误。我安装hdf5r使用conda和也在里面R,但它并没有帮助。如果我在importr('hdf5r')运行spyder它提供了一个有趣的警告,可能是这里重要的(虽然不是错误,因此它实际上加载罚款):

/Users/kipnislab/anaconda3/envs/rmain/lib/python3.6/site-packages/rpy2/rinterface/init.py:146:RRuntimeWarning:错误:延迟加载数据库“/用户/ kipnislab / anaconda3 / ENVS / rmain /lib/R/library/hdf5r/R/hdf5r.rdb”是腐败

更新

现在的问题仍然没有得到解决,但我发现这里的问题。下面接连做一个进口导致的问题:

import hdf5
from rpy2.robjects.packages import importr
seuratLib = importr('Seurat')

所以,一个文件导入hdf5打开文件并加载正确的数据,但我无法导入,因为那Seurat。我想应该有进口hdf5之前卸载Seurat的一种方式。

python-3.x conda rpy2
1个回答
0
投票

最终,我通过切换进口秩序固定的问题:第一个导入所有的rpy2相关的软件包,然后Seurat,才把h5py(在一个单独的文件,做数据检索)。

from rpy2.robjects.packages import importr
seuratLib = importr('Seurat')
import nice_service as ns

里面nice_service的我import hdf5

© www.soinside.com 2019 - 2024. All rights reserved.