簡體   English   中英

Jupyter 筆記本 - rpy2 - 找不到 R 庫

[英]Jupyter notebook - rpy2 - Cannot find R libraries

我目前正在嘗試在同一個 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[寫入控制台]:庫中的錯誤(readr):沒有名為“readr”的包

庫(readr)中的錯誤:沒有名為“readr”的包----------------------------------- ---------------------------------------- RRuntimeError Traceback(最近一次調用最后一次)~\\ anaconda3\\envs\\Cattolica2020\\lib\\site-packages\\rpy2\\ipython\\rmagic.py in eval(self, code) 267 # 需要換行,以防代碼的最后一行是注釋。 --> 268 值,可見 = ro.r("withVisible({%s\\n})" % code) 269 除了 (ri.embedded.RRuntimeError, ValueError) 作為異常:

~\\anaconda3\\envs\\Cattolica2020\\lib\\site-packages\\rpy2\\robjects_ init _.py in call (self, string) 415 p = rinterface.parse(string) --> 416 res = self.eval(p) 417返回轉換.rpy2py(res)

~\\anaconda3\\envs\\Cattolica2020\\lib\\site-packages\\rpy2\\robjects\\functions.py in call (self, *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 in call (self, *args, **kwargs) 124 new_kwargs[k] = conversion.py2rpy(v) --> 125 res = 超級(函數,自我)。 調用(*new_args, **new_kwargs) 126 res = conversion.rpy2py(res)

~\\anaconda3\\envs\\Cattolica2020\\lib\\site-packages\\rpy2\\rinterface_lib\\conversion.py in _(*args, **kwargs) 43 def _(*args, **kwargs): ---> 44 cdata = function(*args, **kwargs) 45 # TODO: test cdata 是預期的 CType

~\\anaconda3\\envs\\Cattolica2020\\lib\\site-packages\\rpy2\\rinterface.py in call (self, *args, **kwargs) 623 if error_occured[0]: --> 624 raise embedding.RRuntimeError(_rinterface._geterrmessage ()) 625 返回資源

RRuntimeError:庫中的錯誤(readr):沒有名為“readr”的包

在處理上述異常的過程中,又發生了一個異常:

RInterpreterError Traceback(最近一次調用)~\\anaconda3\\envs\\Cattolica2020\\lib\\site-packages\\rpy2\\ipython\\rmagic.py in R(self, line, cell, local_ns) 762 else: --> 763 text_result, result ,可見 = self.eval(code) 764 text_output += text_result

~\\anaconda3\\envs\\Cattolica2020\\lib\\site-packages\\rpy2\\ipython\\rmagic.py in eval(self, code) 271 warning_or_other_msg = self.flush() --> 272 raise RInterpreterError(code, str(exception),第273話

RInterpreterError: 無法解析和評估行 'library(readr)\\n'。 R 錯誤消息:“庫(readr)中的錯誤:沒有名為‘readr’的包”

在處理上述異常的過程中,又發生了一個異常:

----> 1 get_ipython().run_cell_magic('R', '', 'library(readr)\\n') 中的 PermissionError 回溯(最近一次調用)

~\\anaconda3\\envs\\Cattolica2020\\lib\\site-packages\\IPython\\core\\interactiveshell.py in run_cell_magic(self, magic_name, line, cell) 2379
使用 self.builtin_trap: 2380 args = (magic_arg_s, cell) -> 2381 result = fn(*args, **kwargs) 2382 返回結果 2383

在 R(self, line, cell, local_ns)

~\\anaconda3\\envs\\Cattolica2020\\lib\\site-packages\\IPython\\core\\magic.py in (f, *a, **k) 185 # 但對於那一點狀態來說有點過分了。 186 def magic_deco(arg): --> 187 call = lambda f, *a, **k: f(*a, **k) 188 189 if callable(arg):

~\\anaconda3\\envs\\Cattolica2020\\lib\\site-packages\\rpy2\\ipython\\rmagic.py in R(self, line, cell, local_ns) 782 print(e.err) 783 if tmpd: --> 784 rmtree(tmpd ) 785 最后返回 786:

~\\anaconda3\\envs\\Cattolica2020\\lib\\shutil.py in rmtree(path, ignore_errors, onerror) 735 # 無法繼續,即使 onerror 鈎子返回 736 return --> 737 return _rmtree_unsafe(path, onerror) 738 739 # Allow自省是否對符號鏈接進行了加固

~\\anaconda3\\envs\\Cattolica2020\\lib\\shutil.py in _rmtree_unsafe(path, onerror) 613 os.unlink(fullname) 614 除了 OSError: --> 615 onerror(os.unlink, fullname, sys.exc_info()) 616嘗試:617 os.rmdir(路徑)

~\\anaconda3\\envs\\Cattolica2020\\lib\\shutil.py in _rmtree_unsafe(path, onerror) 611 else: 612 try: --> 613 os.unlink(fullname) 614 except 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:/Users/User/Documents/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)

暫無
暫無

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

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