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