William Song
William Song

Reputation: 575

Errors about R_HOME when importing rpy2 (submodule)

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.

Upvotes: 6

Views: 7877

Answers (3)

Niranjana Ambadi
Niranjana Ambadi

Reputation: 11

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'}
    

Upvotes: 1

EEE
EEE

Reputation: 520

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.

Upvotes: 5

lgautier
lgautier

Reputation: 11545

How do you fix it? What should i do?

Open a terminal, write "R --version", press enter. If you have R, enter "python" in that same terminal (import rpy2.robjects will just work). If R --version did not find R, either the PATH is not set or R is not installed.

An alternative it to use Docker and one of the Docker images.

Upvotes: -2

Related Questions