I was trying to use pandas from R . I used the reticulate library for the same. The sample code I used is given below
library(reticulate)
use_condaenv("my_env_37",required=T)
py_discover_config()
py_run_string("import pandas as pd")
Error
> py_run_string("import pandas as pd") Error in py_run_string_impl(code, local, convert) : ImportError: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /opt/anaconda/envs/my_env_37/lib/python3.6/site-packages/pandas/_libs/window.cpython-36m-x86_64-linux-gnu.so) Detailed traceback: File "<string>", line 1, in <module> File "/opt/anaconda/envs/my_env_37/lib/python3.6/site-packages/pandas/__init__.py", line 42, in <module> from pandas.core.api import * File "/opt/anaconda/envs/my_env_37/lib/python3.6/site-packages/pandas/core/api.py", line 26, in <module> from pandas.core.groupby import Grouper File "/opt/anaconda/envs/my_env_37/lib/python3.6/site-packages/pandas/core/groupby/__init__.py", line 1, in <module> from pandas.core.groupby.groupby import GroupBy # noqa: F401 File "/opt/anaconda/envs/my_env_37/lib/python3.6/site-packages/pandas/core/groupby/groupby.py", line 37, in <module> from pandas.core.frame import DataFrame File "/opt/anaconda/envs/my_env_37/lib/python3.6/si Calls: py_run_string -> py_run_string_impl Execution halted
Output from py_discover_config()
> py_discover_config() python: /opt/anaconda/envs/my_env_37/bin/python libpython: /opt/anaconda/envs/my_env_37/lib/libpython3.6m.so pythonhome: /opt/anaconda/envs/my_env_37:/opt/anaconda/envs/my_env_37 version: 3.6.8 |Anaconda custom (64-bit)| (default, Dec 30 2018, 01:22:34) [GCC 7.3.0] numpy: /opt/anaconda/envs/my_env_37/lib/python3.6/site-packages/numpy numpy_version: 1.16.2 NOTE: Python version was forced by use_python function
Conda version : 4.6.8
Python Version : 3.6.8
Pandas Version : 0.24.2
OS: RHEL 7.4
R Version : 3.5.1
reticulate Version : 1.9
Is there any other configuration we have to use for getting this working. When I run the same pandas import from Python alone it is working as expected.
Advertisement
Answer
It seems that your GCC is too old to be used with your R module. This issue is not related to R but the error message is the same.
Do you have several installations of GCC (in particular in /usr/local)? If so, you can try something like export LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:/usr/local/lib64:/usr/lib64
as suggested in the previous link I gave.
Otherwise, you should install a newer version of GCC (in a module environment if you still need your current version of GCC, see here for details, the explanations are very clear IMHO). Then, you will need to run R with your new environment.