Jupyter笔记本-rpy2-找不到R库

问题描述

我目前正在尝试在同一Jupyter Notebook中同时使用R和Python。我已经成功安装了rpy2;如果我尝试在R中写一些东西(开始时放在%%R上),那么一切正常,但是一旦我尝试使用库,就会出现以下错误:

R [写到控制台]:库(包名称)错误:没有包 称为-包名称-

如果我尝试在R Studio中使用相同的库(而不是在Jupyter中使用),则一切正常。

这是给我麻烦的代码:

import os
os.environ['R_HOME'] = r'C:/PROGRA~1/R/R-40~1.0'
os.environ['path'] += r';C:/PROGRA~1/R/R-40~1.0\bin;'
%load_ext rpy2.ipython

%%R
library(readr)

最后一行之后,出现以下错误:

R [写入控制台]:库(读取器)出错:没有名为“读取器”的软件包

库(读取器)中的错误:没有名为“读取器”的软件包 -------------------------------------------------- ------------------------- RRuntimeError Traceback(最近一次调用 持续) 〜\ anaconda3 \ envs \ Cattolica2020 \ lib \ site-packages \ rpy2 \ ipython \ rmagic.py 在eval中(自己,代码) 267#需要换行符,以防代码中的最后一行是注释。 -> 268个值,可见= ro.r(“ withVisible({%s \ n})”%代码) 269除了(ri.embedded.RRuntimeError,ValueError)作为例外:

〜\ anaconda3 \ envs \ Cattolica2020 \ lib \ site-packages \ rpy2 \ robjects_ init _。py 在通话中(自己,字符串) 第415章(小幸运) -> 416分辨率= self.eval(p) 417返回conversion.rpy2py(res)

〜\ anaconda3 \ envs \ Cattolica2020 \ lib \ site-packages \ rpy2 \ robjects \ functions.py 在通话中(自己,* args,** kwargs) 196 kwargs [r_k] = v -> 197 return(super(SignatureTranslatedFunction,self) 198。通话(* args,** kwargs))

〜\ anaconda3 \ envs \ Cattolica2020 \ lib \ site-packages \ rpy2 \ robjects \ functions.py 在通话中(自己,* args,** kwargs) 124 new_kwargs [k] = conversion.py2rpy(v) -> 125 res =超级(Function,self)。调用(* new_args,** new_kwargs) 126分辨率= conversion.rpy2py(res)

〜\ anaconda3 \ envs \ Cattolica2020 \ lib \ site-packages \ rpy2 \ rinterface_lib \ conversion.py 在_(* args,** kwargs)中 43 def _(* args,** kwargs): -> 44个cdata = function(* args,** kwargs) 45#TODO:测试cdata具有预期的CType

〜\ anaconda3 \ envs \ Cattolica2020 \ lib \ site-packages \ rpy2 \ rinterface.py在 致电(自己,* args,** kwargs) 623,如果error_occured [0]: -> 624提高嵌入式.RRuntimeError(_rinterface._geterrmessage()) 625返回res

RRuntimeError:库(读取器)错误:没有调用的包 “阅读器”

在处理上述异常期间,发生了另一个异常:

RInterpreterError追溯(最近的呼叫 持续) 〜\ anaconda3 \ envs \ Cattolica2020 \ lib \ site-packages \ rpy2 \ ipython \ rmagic.py 在R中(self,line,cell,local_ns) 762其他: -> 763 text_result,结果,可见= self.eval(代码) 764 text_output + = text_result

〜\ anaconda3 \ envs \ Cattolica2020 \ lib \ site-packages \ rpy2 \ ipython \ rmagic.py 在eval中(自己,代码) 271警告 -> 272引发RInterpreterError(code,str(exception), 273 warning_or_other_msg)

RInterpreterError:无法解析和评估行 “库(阅读器)\ n”。 R错误消息:“库(读取器)中存在错误:存在 没有名为“阅读器”的程序包“

在处理上述异常期间,发生了另一个异常:

PermissionError跟踪(最近的呼叫) 最后) ----> 1个get_ipython()。run_cell_magic('R','','library(readr)\ n')

〜\ anaconda3 \ envs \ Cattolica2020 \ lib \ site-packages \ IPython \ core \ interactiveshell.py 在run_cell_magic中(self,magic_name,line,cell)2379
与self.builtin_trap:2380 args =(magic_arg_s, 细胞) -> 2381结果= fn(* args,** kwargs)2382返回结果2383

R中的(自身,行,单元格,local_ns)

〜\ anaconda3 \ envs \ Cattolica2020 \ lib \ site-packages \ IPython \ core \ magic.py 在(f,* a,** k)中 185#但对于那种状态来说,这是过分的。 186 def magic_deco(arg): -> 187通话= lambda f,* a,** k:f(* a,** k) 188 189,如果可调用(arg):

〜\ anaconda3 \ envs \ Cattolica2020 \ lib \ site-packages \ rpy2 \ ipython \ rmagic.py 在R中(self,line,cell,local_ns) 782打印(e.err) 第783章 -> 784 rmtree(tmpd) 785返回 终于786:

rmtree中的

〜\ anaconda3 \ envs \ Cattolica2020 \ lib \ shutil.py(路径, ignore_errors,onerror) 735#即使onerror挂接返回也无法继续 736返回 -> 737 return _rmtree_unsafe(路径,错误) 738 739#允许自省是否对符号链接进行强化

_rmtree_unsafe中的

〜\ anaconda3 \ envs \ Cattolica2020 \ lib \ shutil.py(路径, 错误) 613 os.unlink(全名) 614除了OSError: -> 615 onerror(os.unlink,全名,sys.exc_info()) 616尝试: 617 os.rmdir(path)

_rmtree_unsafe中的

〜\ anaconda3 \ envs \ Cattolica2020 \ lib \ shutil.py(路径, 错误) 第611章 612尝试: -> 613 os.unlink(全名) 614除了OSError: 615 onerror(os.unlink,fullname,sys.exc_info())

PermissionError:[WinError 32]不可能的附件文件。 Il文件 utilizzato da un altro processo: 'C:\ Users \ User \ AppData \ Local \ Temp \ tmp82eo8sb4 \ Rplots001.png'

我还尝试验证Jupyter和R的库目录是否相同,并且获得相同的两个目录:

[1]“ C:/用户/用户/文档/R/win-library/4.0” [2]“ C:/ Program Files / R / R-4.0.0 / library

我目前正在使用R 4.0.0和Python 3.8.3

解决方法

RRuntimeError异常通常只是将R在执行过程中自行生成的异常转发给Python。

该错误消息表明R找不到库。如果您真的确定RStudio和Jupyter都使用相同的R安装,则两者之间的区别将来自RStudio,该命令被指示在比从Jupyter开始的R更多的目录中查找已安装的R软件包。

在RStudio中运行以下命令,以了解从何处加载readr

library(dplyr)
as_data_frame(installed.packages()) %>%
  filter(Package == "readr") %>%
  select(Package,LibPath)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...