fko*_*gel 7 python r rpy2 jupyter-notebook seurat
首先,我\xe2\x80\x99m是rpy2 / jupyter的新手,所以请不要\xe2\x80\x99判断我这是否是\xe2\x80\x99t提问的正确位置。
\n\n我正在尝试使用 R 和 Python 建立一个用于数据分析的集成工作流程,但遇到以下错误:
\n\n我使用的是 Ubuntu 19.04。使用 Jupyter 1.0.0、Python 3.7.4、R 3.5.1、r-irkernel 1.0.2 和 rpy2 3.1.0 运行 conda 环境,并通过 R 安装了 R 包 Seurat。
\n\n当我使用 R 内核创建 Jupyter 笔记本时,我可以library(Seurat)很好地加载 Seurat。
我还可以使用 rpy2 和 rmagic 在 python 中使用 R 代码,例如:
\n\n%load_ext rpy2.ipython\nRun Code Online (Sandbox Code Playgroud)\n\n%%R\ndata(allen, package = \'scRNAseq\')\nadata_allen <- as(allen, \'SingleCellExperiment\')\nRun Code Online (Sandbox Code Playgroud)\n\n然而,当我尝试使用 rpy2 加载 Seurat 时,内核崩溃了:
\n\n%%R\nlibrary(Seurat)\nRun Code Online (Sandbox Code Playgroud)\n\n我收到以下消息:
\n\n\n\n\n内核正在重新启动
\n
\n 内核似乎已死亡。它将自动重新启动
Jupyter 在命令行中给出以下消息:
\n\n%%R\ndata(allen, package = \'scRNAseq\')\nadata_allen <- as(allen, \'SingleCellExperiment\')\nRun Code Online (Sandbox Code Playgroud)\n\n请注意,其他库(例如library(dplyr)load)使用 rpy2 就可以了。
我只能\xe2\x80\x99t 似乎找出导致问题的原因。有没有办法从 Jupyter 获取更详细的错误消息?
\n\n我们将非常感谢您的帮助!
\n\n问候菲利克斯
\n**这是对原始答案的编辑 - 段错误不应再发生。**
R 包Seurat使用另一个名为 的 R 包reticulate,提供从 R 到 Python 的桥梁。
rpy2 端的 cffi 释放 Python GIL 的问题,以及网状端无法确保获取 GIL 的问题导致了长时间的段错误。但是,当前(2023)版本的 rpy2 和 reticulate 应该可以协同工作。