You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R的reticulate中加载pandas报错:缺少GLIBCXX_3.4.29

解决R中reticulate加载pandas时GLIBCXX_3.4.29缺失的问题

问题描述

尝试用R的reticulate包加载Python的pandas包,已安装Python3.8并通过conda安装pandas,Python中可正常导入pandas,但在R中执行pd <- import("pandas")时出现错误:

> pd <- import("pandas")
Error in py_module_import(module, convert = convert) :
  ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /home/mnd/miniconda/lib/python3.8/site-packages/pandas/_libs/window/aggregations.cpython-38-x86_64-linux-gnu.so)

系统的/usr/lib/x86_64-linux-gnu/libstdc++.so.6仅包含GLIBCXX_3.4至GLIBCXX_3.4.28版本,尝试通过reticulate::py_install("pandas", force = TRUE)重新安装pandas后,问题依旧。

解决方案

方法1:让reticulate优先使用conda环境的libstdc++

conda环境自带较新的libstdc++库,可通过设置环境变量让R优先加载该库:

  • 在R中执行(替换为你的conda环境路径):
    Sys.setenv(LD_LIBRARY_PATH = "/home/mnd/miniconda/lib:$LD_LIBRARY_PATH")
    library(reticulate)
    use_condaenv("你的conda环境名称") # 若使用base环境可省略
    pd <- import("pandas")
    
  • 或在终端启动R前设置环境变量:
    export LD_LIBRARY_PATH="/home/mnd/miniconda/lib:$LD_LIBRARY_PATH"
    R
    

方法2:安装兼容低版本GLIBCXX的pandas版本

高版本pandas依赖较新的libstdc++,可安装对GLIBCXX要求更低的版本(比如1.3.x系列):

  • 在conda环境中执行:
    conda install pandas=1.3.5
    
  • 或通过reticulate在R中安装:
    reticulate::py_install("pandas==1.3.5", force = TRUE)
    

方法3:手动更新系统libstdc++库

若系统允许,可更新libstdc++到包含GLIBCXX_3.4.29的版本:

  • 通过系统软件源更新(以Debian/Ubuntu为例):
    sudo apt update
    sudo apt install --only-upgrade libstdc++6
    
  • 若软件源无更新版本,可从conda复制库文件到系统目录(注意备份原文件):
    sudo cp /home/mnd/miniconda/lib/libstdc++.so.6 /usr/lib/x86_64-linux-gnu/
    

内容的提问来源于stack exchange,提问作者user1701545

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 06:40:15