Python 3.x rpy2.rinterface.rrontimeerror:错误:';hdf5r';

Python 3.x rpy2.rinterface.rrontimeerror:错误:';hdf5r';,python-3.x,conda,rpy2,Python 3.x,Conda,Rpy2,我编写了一个python脚本(python3.6),它使用rpy2R版本为3.5.1。当我运行importr('Seurat')时,它给出了一个错误: /Users/kipnislab/anaconda3/envs/rmain/lib/python3.6/site packages/rpy2/rinterface/init。py:146:rrentimewarning:错误:“Seurat”的包或命名空间加载失败: .onLoad在“hdf5r”的loadNamespace()中失败,详细信息:

我编写了一个
python
脚本(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:rrentimewarning:错误:“Seurat”的包或命名空间加载失败: .onLoad在“hdf5r”的loadNamespace()中失败,详细信息: 电话:fun(libname,pkgname) 错误:检索当前错误处理程序时出错

从中我看到,
importr('Seurat')
需要导入
hdf5r
,但它失败了。我在一个虚拟的
conda
环境中工作。启动
R
并运行
library('Seurat')
工作正常。如果我只打开
spyder
并运行
importr('Seurat')
它也可以正常工作,但在终端运行时:
python Seurat_clustering.py
会失败,出现上述错误。我使用
conda
R
内部安装了
hdf5r
,但没有任何帮助。如果我在
spyder
中运行
importr('hdf5r')
,它会给出一个有趣的警告,在这里可能很重要(但不是错误,因此它实际上可以正常加载):

/Users/kipnislab/anaconda3/envs/rmain/lib/python3.6/site packages/rpy2/rinterface/init.py:146:rrentimewarning:Error:lazy-load-database'/Users/kipnislab/anaconda3/envs/rmain/lib/R/library/hdf5r/R/hdf5r.rdb'已损坏

更新

这个问题仍然没有解决,但我在这里找到了问题。以下一个接一个的导入会导致问题:

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

因此,有一个文件正在导入
hdf5
,以打开文件并加载正确的数据,但我无法导入
Seurat
。我想在导入
Seurat

之前应该有一种卸载
hdf5
的方法,最终我通过切换导入顺序解决了这个问题:首先导入所有与
rpy2
相关的包,然后导入
Seurat
,然后才导入
h5py
(在一个单独的文件中进行数据检索)


nice\u服务内部
我导入了
hdf5

很可能是conda和/或您的安装出现了问题。
from rpy2.robjects.packages import importr
seuratLib = importr('Seurat')
import nice_service as ns