rpy2:加载conda环境下安装的R版本,不是系统中的那个
rpy2: load R version installed in conda environment, not the one in the system
我在 Python 脚本中使用 rpy2 到 运行 一些 R
代码。该脚本 运行 来自 conda
环境,其中安装了 R
版本 3.6.1。
问题是,当我 运行 脚本 rpy2
加载安装在 系统 中的 R
(即不在环境)这是一个旧版本 3.4.4。我这样检查加载的版本:
from rpy2.robjects import r
r("""cat(paste("R version: ",R.version.string))""")
如何强制rpy2
使用安装在conda
环境中的R版本?
添加
我删除了系统的 R 版本,现在尝试 运行 以上行结果:
ValueError: r_home is None. Try python -m rpy2.situation
运行 python -m rpy2.situation
这表明:
rpy2 version:
3.3.5
Python version:
3.8.3 (default, Jul 2 2020, 16:21:59)
[GCC 7.3.0]
Looking for R's HOME:
Environment variable R_HOME: None
Calling `R RHOME`: /home/gabriel/miniconda3/envs/py3/lib/R
Environment variable R_LIBS_USER: None
R's additions to LD_LIBRARY_PATH:
R version:
In the PATH: R version 3.6.1 (2019-07-05) -- "Action of the Toes"
Loading R library from rpy2: OK
Additional directories to load R packages from:
None
C extension compilation:
include:
['/home/gabriel/miniconda3/envs/py3/lib/R/include']
libraries:
['R', 'pcre', 'lzma', 'bz2', 'z', 'rt', 'dl', 'm', 'icuuc', 'icui18n']
library_dirs:
['/home/gabriel/miniconda3/envs/py3/lib', '/home/gabriel/miniconda3/envs/py3/lib', '/home/gabriel/miniconda3/envs/py3/lib/R/lib']
extra_compile_args:
[]
extra_link_args:
['-Wl,--export-dynamic', '-fopenmp', '-Wl,-O2', '-Wl,--sort-common', '-Wl,--as-needed', '-Wl,-z,relro', '-Wl,-z,now', '-Wl,--disable-new-dtags', '-Wl,--gc-sections', '-Wl,-rpath,/home/gabriel/miniconda3/envs/py3/lib', '-Wl,-rpath-link,/home/gabriel/miniconda3/envs/py3/lib', '-Wl,-rpath-link,/home/gabriel/miniconda3/envs/py3/lib']
这似乎表明 rpy2
知道安装在 conda
中的 R
。
如果我没记错的话,link要使用的R安装是在安装rpy2的时候做的
要使用您提到的特定 R 安装,我想您可以执行以下步骤:
- 正在卸载 rpy2
- 在 PATH 环境变量中添加目标 R 安装的
bin
文件夹:
export PATH=${PATH}:/path/to/conda/R-3.6.1/bin/
- 将 R_HOME 变量环境设置为目标 R 安装的文件夹:
export R_HOME=/path/to/conda/R-3.6.1/
- 再次安装 rpy2。
我在 Python 脚本中使用 rpy2 到 运行 一些 R
代码。该脚本 运行 来自 conda
环境,其中安装了 R
版本 3.6.1。
问题是,当我 运行 脚本 rpy2
加载安装在 系统 中的 R
(即不在环境)这是一个旧版本 3.4.4。我这样检查加载的版本:
from rpy2.robjects import r
r("""cat(paste("R version: ",R.version.string))""")
如何强制rpy2
使用安装在conda
环境中的R版本?
添加
我删除了系统的 R 版本,现在尝试 运行 以上行结果:
ValueError: r_home is None. Try python -m rpy2.situation
运行 python -m rpy2.situation
这表明:
rpy2 version:
3.3.5
Python version:
3.8.3 (default, Jul 2 2020, 16:21:59)
[GCC 7.3.0]
Looking for R's HOME:
Environment variable R_HOME: None
Calling `R RHOME`: /home/gabriel/miniconda3/envs/py3/lib/R
Environment variable R_LIBS_USER: None
R's additions to LD_LIBRARY_PATH:
R version:
In the PATH: R version 3.6.1 (2019-07-05) -- "Action of the Toes"
Loading R library from rpy2: OK
Additional directories to load R packages from:
None
C extension compilation:
include:
['/home/gabriel/miniconda3/envs/py3/lib/R/include']
libraries:
['R', 'pcre', 'lzma', 'bz2', 'z', 'rt', 'dl', 'm', 'icuuc', 'icui18n']
library_dirs:
['/home/gabriel/miniconda3/envs/py3/lib', '/home/gabriel/miniconda3/envs/py3/lib', '/home/gabriel/miniconda3/envs/py3/lib/R/lib']
extra_compile_args:
[]
extra_link_args:
['-Wl,--export-dynamic', '-fopenmp', '-Wl,-O2', '-Wl,--sort-common', '-Wl,--as-needed', '-Wl,-z,relro', '-Wl,-z,now', '-Wl,--disable-new-dtags', '-Wl,--gc-sections', '-Wl,-rpath,/home/gabriel/miniconda3/envs/py3/lib', '-Wl,-rpath-link,/home/gabriel/miniconda3/envs/py3/lib', '-Wl,-rpath-link,/home/gabriel/miniconda3/envs/py3/lib']
这似乎表明 rpy2
知道安装在 conda
中的 R
。
如果我没记错的话,link要使用的R安装是在安装rpy2的时候做的
要使用您提到的特定 R 安装,我想您可以执行以下步骤:
- 正在卸载 rpy2
- 在 PATH 环境变量中添加目标 R 安装的
bin
文件夹:
export PATH=${PATH}:/path/to/conda/R-3.6.1/bin/
- 将 R_HOME 变量环境设置为目标 R 安装的文件夹:
export R_HOME=/path/to/conda/R-3.6.1/
- 再次安装 rpy2。