rpy2安装

1. windows

1.1通过anaconda 安装

(1)安装

打开Anaconda Prompt,直接安装。安装过程中conda会下载对应版本的R以及R包。

 conda install rpy2

(2)配置环境变量

安装完成后尝试引入模块,报错:
rpy2安装_第1张图片
查看错误信息以及源代码,发现缺少环境变量R_HOME
添加环境变量:
rpy2安装_第2张图片
不要在path中以新建环境变量的方式添加,而是新建单独的环境变量:
rpy2安装_第3张图片

再次尝试引入模块,正常运行:
rpy2安装_第4张图片

2. linux

2.1通过anaconda 安装

安装anaconda的过程略去,这里假设anaconda以及安装在用户的home目录下。

cd ~
conda install rpy2

Attention
使用conda安装rpy2时会另外安装一次R到anaconda的lib目录下,此时再通过当前用户调用R则是调用的anaconda的lib目录下安装的R,命令行的环境变量被改变了。如果需要用回系统中安装的R,则需要修改anaconda/bin目录下的R执行文件,文件部分内容大致如下。其实这基本上就是把系统中的这个/usr/bin/R文件中关于R_HOME的部分修改到了anaconda3/bin

cat ~/anaconda3/bin/R
#!/bin/sh
# Shell wrapper for R executable.

R_HOME_DIR=/home/test/anaconda3/lib/R
if test "${R_HOME_DIR}" = "/home/test/anaconda3/lib/R"; then
   case "linux-gnu" in
   linux*)
     run_arch=`uname -m`
     case "$run_arch" in
        x86_64|mips64|ppc64|powerpc64|sparc64|s390x)
          libnn=lib64
          libnn_fallback=lib
        ;;
        *)
          libnn=lib
          libnn_fallback=lib64
        ;;
     esac
     if [ -x "/home/test/anaconda3/${libnn}/R/bin/exec/R" ]; then
        R_HOME_DIR="/home/test/anaconda3/${libnn}/R"
     elif [ -x "/home/test/anaconda3/${libnn_fallback}/R/bin/exec/R" ]; then
        R_HOME_DIR="/home/test/anaconda3/${libnn_fallback}/R"
     ## else -- leave alone (might be a sub-arch)
     fi
     ;;
  esac
fi

if test -n "${R_HOME}" && \
   test "${R_HOME}" != "${R_HOME_DIR}"; then
  echo "WARNING: ignoring environment value of R_HOME"
fi
R_HOME="${R_HOME_DIR}"
export R_HOME
R_SHARE_DIR=/home/test/anaconda3/lib/R/share
export R_SHARE_DIR
R_INCLUDE_DIR=/home/test/anaconda3/lib/R/include
export R_INCLUDE_DIR
R_DOC_DIR=/home/test/anaconda3/lib/R/doc
export R_DOC_DIR

可以看到R_HOME_DIR等环境变量被修改为指向anaconda/bin,此时再使用命令行安装R包就只能通过conda采用类似conda install -c r r-dplyr的命令。如果使用sudo权限调用R安装R包或者通过RStudio-server,则是调用的系统环境中的R,用户环境中的R并不会改变。这样会造成在用户和系统环境下分别有两个环境的R。解决方式有两个:

  • 直接删除conda中的R环境conda uninstall r-base
  • 修改~/anacnoda3/bin/R中的环境变量

2.2通过pip安装到虚拟环境

对于上述情况,如果想要避免修改R的环境变量,直接使用pip安装就好。

pip3 install rpy2

你可能感兴趣的:(python)