1

I am trying to use rpy2 from PyCharm to get access to R from Python. I am using conda on a Linux Kubuntu 20.04. When I export

export LD_LIBRARY_PATH="/opt/R/4.0.3/lib/R/lib/:$LD_LIBRARY_PATH"

in my bash and then call python, then

import rpy2.robjects as robjects

gets imported just fine. But when I am in PyCharm this does not work anymore. To set the environment variables I run

import os
os.environ['LD_LIBRARY_PATH'] = '/opt/R/4.0.3/lib/R/lib'
os.environ['R_HOME'] = '/opt/R/4.0.3/lib/R'
os.environ['R_USER'] = '/miniconda3/envs/myenv/lib/python3.8/site-packages/rpy2'

but then get

import rpy2.robjects as robjects
R[write to console]: Error in dyn.load(file, DLLpath = DLLpath, ...) : 
  cannot load shared object '/opt/R/4.0.3/lib/R/library/methods/libs/methods.so':
  libR.so: Cannot open the shared object file: File or directory not found
Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "/snap/pycharm-professional/230/plugins/python/helpers/pydev/_pydev_bundle/pydev_import_hook.py", line 21, in do_import
    module = self._system_import(name, *args, **kwargs)
  File "/miniconda3/envs/myenv/lib/python3.8/site-packages/rpy2/robjects/__init__.py", line 19, in <module>
    from rpy2.robjects.robject import RObjectMixin, RObject
  File "/snap/pycharm-professional/230/plugins/python/helpers/pydev/_pydev_bundle/pydev_import_hook.py", line 21, in do_import
    module = self._system_import(name, *args, **kwargs)
  File "/miniconda3/envs/myenv/lib/python3.8/site-packages/rpy2/robjects/robject.py", line 58, in <module>
    class RObjectMixin(object):
  File "/miniconda3/envs/myenv/lib/python3.8/site-packages/rpy2/robjects/robject.py", line 70, in RObjectMixin
    __show = _get_exported_value('methods', 'show')
  File "/miniconda3/envs/myenv/lib/python3.8/site-packages/rpy2/rinterface_lib/conversion.py", line 45, in _
    cdata = function(*args, **kwargs)
  File "/miniconda3/envs/myenv/lib/python3.8/site-packages/rpy2/rinterface.py", line 677, in __call__
    raise embedded.RRuntimeError(_rinterface._geterrmessage())
rpy2.rinterface_lib.embedded.RRuntimeError: Error in dyn.load(file, DLLpath = DLLpath, ...) : 
  cannot load shared object '/opt/R/4.0.3/lib/R/library/methods/libs/methods.so':
  libR.so: Cannot open the shared object file: File or directory not found

In either case, for the conda environment I also set

conda env config vars set LD_LIBRARY_PATH='/opt/R/4.0.3/lib/R/lib'

beforehand and restarted PyCharm and every conda environment completely new.

What can I do?


I set R_USER due to How to setup environment variable R_user to use rpy2 in python

Make42
  • 12,236
  • 24
  • 79
  • 155

0 Answers0