R 网状 libstdc++so GLIBCXX_3.4.21 未找到问题

R reticulate libstdc++so GLIBCXX_3.4.21 not found issue

我试图使用 R 中的 pandas。我同样使用网状库。我使用的示例代码如下

library(reticulate) use_condaenv("my_env_37",required=T) py_discover_config() py_run_string("import pandas as pd")

错误

> 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

来自 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 版本:4.6.8 Python版本:3.6.8 Pandas版本:0.24.2 OS: RHEL 7.4 R 版本:3.5.1 网状版本:1.9

我们是否必须使用任何其他配置才能使其正常工作。当我 运行 相同的 pandas 单独从 Python 导入时,它按预期工作。

您的 GCC 似乎太旧,无法与您的 R 模块一起使用。 This issue 与 R 无关,但错误消息相同。

您是否安装了多个 GCC(特别是 /usr/local)?如果是这样,您可以按照我之前给出的 link 中的建议尝试类似 export LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:/usr/local/lib64:/usr/lib64 的操作。

否则,您应该安装较新版本的 GCC(在模块环境中,如果您仍然需要当前版本的 GCC,请参阅 here 了解详情,恕我直言,解释非常清楚)。然后,您将需要 运行 R 适应您的新环境。