Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Errors about R_HOME when importing rpy2 (submodule)

Tags:

python

rpy2

when importing rpy2.robjects, I got the following error. It said I have to set the R_HOME environment variable or add the directory of the R interpreter to the PATH. But i do not know how to deal with it. How do you fix it? What should i do?

The problem appears only in idle, not in bash, sublime, pycharm or notebook!

PS: I have R(3.4) and rpy2(2.8.6), under mac, import rpy2 no error

PSS: I tried PATH="/Library/Frameworks/R.framework/Versions/3.4/Resources/bin:{PATH}” export PATH. but I failed.

>>> import rpy2.robjects as robjects

Traceback (most recent call last): File "", line 1, in import rpy2.robjects as robjects File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/rpy2/robjects/init.py", line 16, in import rpy2.rinterface as rinterface File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/rpy2/rinterface/init.py", line 81, in """) RuntimeError: The R home directory could not be determined.

Try to install R <https://www.r-project.org/>,
set the R_HOME environment variable to the R home directory, or
add the directory of the R interpreter to the PATH environment variable.
like image 890
William Song Avatar asked Aug 19 '17 08:08

William Song


2 Answers

Perhaps you were using different python environments in idle than you were in bash, sublime, pycharm and notebook. I recommend using anaconda to manage multiple environments. Then taking advice given here to set the R_HOME environment variable within the python environment for which you would like to use rpy2.

like image 184
EEE Avatar answered Oct 07 '22 13:10

EEE


I use a Mac, and so the steps look different for me than in other answers.

  1. From terminal run

    {python3 -m rpy2.situation}
    

    This would give the value of R_HOME if it is already set. For me, it read like below:

    rpy2 version:
    3.4.5
    Python version:
    3.8.8 (default, Apr 13 2021, 12:59:45) 
    [Clang 10.0.0 ]
    
    
    Looking for R's HOME:
        Environment variable R_HOME: None
    
        Calling `R RHOME`: /Library/Frameworks/R.framework/Resources
    
        Environment variable R_LIBS_USER: None
    
    R's additions to LD_LIBRARY_PATH:
    
    R version:
        In the PATH: R version 4.1.2 (2021-11-01) -- "Bird Hippie"
    
        Loading R library from rpy2: OK
    
    Additional directories to load R packages from:
    None
    
    C extension compilation:
      include:
      ['/Library/Frameworks/R.framework/Resources/include']
      libraries:
      ['pcre2-8', 'lzma', 'bz2', 'z', 'icucore', 'dl', 'm', 'iconv']
      library_dirs:
      ['/usr/local/lib', '/usr/local/lib']
      extra_compile_args:
      []
      extra_link_args:
      ['-F/Library/Frameworks/R.framework/..', '-framework', 'R']
    
  2. Now, in the code, within whichever IDE you are using (e.g., PyCharm/Spyder), type the below:

    {import os
    
    os.environ['R_HOME'] = '/Library/Frameworks/R.framework/Resources'}
    
like image 1
Niranjana Ambadi Avatar answered Oct 07 '22 11:10

Niranjana Ambadi