我是 R 新手。我在 Windows 11 计算机上运行 Jupyter Lab,并创建了一个虚拟环境,在其中安装了一些软件包和 irkernel。当我执行 %load_ext rpy2.ipython
时收到以下消息:
Unable to determine R library path: Command '('C:\\Users\\ephra\\miniconda3\\envs\\cde\\Lib\\R\\bin\\Rscript', '-e', 'cat(Sys.getenv("LD_LIBRARY_PATH"))')' returned non-zero exit status 1.
这是我的完整代码:
import os
os.environ['R_HOME'] = 'C:\\Users\\ephra\\miniconda3\\envs\\cde\\Lib\\R'
os.environ['R_USER'] = 'C:\\Users\\ephra\\miniconda3\\envs\\cde\\Lib\\site-packages\\rpy2'
from src.setup import *
%load_ext rpy2.ipython
%%R
library(tidyverse)
除了环境变量之外,上面的代码来自 David Mertz 的书《Cleaning Data for effective Data Science》。我需要你的帮助。
最佳答案
注意:这是一个推测性答案,因为我不使用 Jupyter
那个os.environ
这个技巧在普通 Python 中对我有用,但 Jupyter 的魔术例程 %load_ext rpy2.ipython
利用LD_LIBRARY_PATH
设置自己。该错误来自于 LD_LIBRARY_PATH
是 Linux/Unix 的事情,因此带来了麻烦。
失败的尝试#1
<罢工>
您可以做的是以下行添加到您的 os.environ
中调用:
os.environ['LD_LIBRARY_PATH'] = 'C:\\Users\\ephra\\miniconda3\\envs\\cde\\Lib\\R\\bin\\x64'
假设 'C:\Users\ephra\miniconda3\envs\cde\Lib\R\bin' 存在。如果没有,请查找包含一堆 exe 和 dll 文件的 R 子文件夹。
罢工>
尝试#2
进一步调查,我注意到 LD_LIBRARY_PATH
rpy2
从未使用过其本身,这似乎是一个 Linux 解决方法。那么,如果您注释掉 Lib\site-packages\rpy2\rinterface_lib\openrlib.py
的第 26-28 行,会发生什么? ?
这些行应为
LD_LIBRARY_PATH = (rpy2.situation.r_ld_library_path_from_subprocess(R_HOME)
if R_HOME is not None
else '')
如果这次黑客攻击成功,请告诉我,我可以提交 PR。
关于python - 无法确定 R 库路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72575015/