python - 无法确定 R 库路径

标签 python r windows jupyter-lab rpy2

我是 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/

相关文章:

python - 从字典列表中动态创建嵌套 json 对象

python - 从shell脚本向python程序插入参数

c++ - 创建可暂停/可恢复线程的最佳方法是什么

c - 为什么通配符不能代表FindFirstFile中的目录?

python - 如何在后台没有控制台的情况下启动这个 python GUI 应用程序?

python - 从字典中获取特定值

r - 如何在 R 中使来自大型数据集的条形图更加清晰和简洁?

R:用不同颜色映射正数和负数

r - 用 R 下载 png/jpg

windows - 如何转义批处理文件中的符号?