Я написал 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: RRuntimeWarning: Ошибка: не удалось загрузить пакет или пространство имен для «Seurat»: .onLoad не удалось выполнить в loadNamespace () для «hdf5r», подробности: call: fun (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: Ошибка: база данных с отложенной загрузкой '/ 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
, потому чтотого, что.Я предполагаю, что должен быть способ выгрузки hdf5
перед импортом Seurat
.