簡體   English   中英

R kernel 在使用 R ZEFE90A8E604A7C840E88D03Apy2ZF6 加載時崩潰

[英]R kernel crashes while loading R package using rpy2

首先,我是 rpy2 / jupyter 的新手,所以如果這不是問我問題的正確地方,請不要評判我。

我正在嘗試使用 R 和 Python 設置用於數據分析的集成工作流,但遇到以下錯誤:

我在 Ubuntu 19.04。 running a conda environment using Jupyter 1.0.0, Python 3.7.4, R 3.5.1, r-irkernel 1.0.2 and rpy2 3.1.0 and I installed the R-package Seurat through R.

當我使用 R 內核創建 Jupyter 筆記本時,我可以很好地加載帶有library(Seurat)的 Seurat。

我還可以使用 rpy2 和 rmagic 在 python 中使用 R 代碼,例如:

%load_ext rpy2.ipython
%%R
data(allen, package = 'scRNAseq')
adata_allen <- as(allen, 'SingleCellExperiment')

但是,當我嘗試使用 rpy2 加載 Seurat 時,kernel 崩潰:

%%R
library(Seurat)

我收到以下消息:

Kernel 重啟
kernel 似乎已經死亡。 它會自動重啟

Jupyter 在命令行中給出以下消息:

[I 16:39:01.388 NotebookApp] KernelRestarter: restarting kernel (1/5), keep random ports
kernel 23284ec0-63d5-4b61-9ffa-b52d19851eab restarted

請注意,其他庫(例如library(dplyr)使用 rpy2 加載就好了。

我完整的 conda 環境可以在附加的文本文件中找到。

我似乎無法弄清楚是什么導致了問題。 有沒有辦法從 Jupyter 獲得更詳細的錯誤消息?

您的幫助將不勝感激!

問候菲利克斯

The R package Seurat is using an other R package called reticulate , providing a bridge to Python from R.

不幸的是,每當涉及rpy2reticulate時,R 最終都會被初始化兩次,這不可避免地會導致段錯誤。 在撰寫本文時,這仍然是一個開放的錯誤。 rpy2端的問題跟蹤(可以找到跟蹤的reticulate端的鏈接)在這里:

https://bitbucket.org/rpy2/rpy2/issues/456/reticulate-rpy2-sharing-r-process

同樣的問題。 加載其他包時沒問題,但加載Seurat時崩潰

我和你有同樣的問題。 但是我降級到 Seurat 3.0.2,您的問題將得到解決。 要將用戶定義的 R kernel 用於帶有 conda 的 rpy2,請在最開始時運行之前的代碼(在 imoort rpy2 之前)

# user defined R installation
import os
os.environ['R_HOME'] = '/path/to/miniconda/envs/seurat/lib/R' #path to your R installation
os.environ['R_USER'] = '/path/to/miniconda/lib/python3.7/site-packages/rpy2' #path depends on where you installed Python.

這對我有用,同時面臨 kernel 在從 rpy2 導入 robjects 時死機的問題:

import os
os.environ['R_HOME'] = '/Users/<your user>/anaconda3/envs/<env name>/lib/R'

# import your desired module
from rpy2.robjects.packages import importr

我遇到了同樣的問題,我也在 docker 中使用 R 和 python 和 Jupyter 筆記本。

我通過啟動我的筆記本或 Python 代碼解決了 Kernel 崩潰問題:

導入操作系統
os.environ['R_HOME'] = '/usr/lib/R'

/usr/lib/R 是我系統的 R 安裝和庫的位置,應該是 rpy2 所需的 R 版本。 希望這可以幫助。

我無法報告解決方案,只能報告不同類型的問題。

環境: jupyter/r-notebook:hub-2.3.1 ZC5FD214CDD0D2B3B4272E73B02BBA5C2Z IMAGE,帶有ZA7F5F5F35426B927411FC927411FC9231B56382173Z 3.10.5.10.5.5.5,5,4.4.4.4.4.4.4.4.4.4.4.4.4.python,

我在終端rpy2中安裝了 rpy2: python3 -m pip install rpy2 然后我在終端中啟動 IPython, import rpy2並調用rpy2.__version__這給了我3.5.3 到目前為止,一切都很好。

下一步是: import rpy2.robjects as robjects 這會導致以下不那么有指導意義的錯誤消息:

Error in glue(.Internal(R.home()), "library", "base", "R", "base", sep = .Platform$file.sep) : 
  4 arguments passed to .Internal(paste) which requires 3
Error: could not find function "attach"
Error: object '.ArgsEnv' not found
Fatal error: unable to initialize the JIT

看起來這是rpy2中的錯誤。 將環境變量R_HOME設置為合理的值(請參閱其他帖子中的建議)沒有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM