matplotlib绘图报错libstdc++.so.6解决方法

本文介绍了如何通过设置系统环境变量`LD_LIBRARY_PATH`,确保在执行时默认使用Anaconda安装的库,而非系统自带的库。
部署运行你感兴趣的模型镜像

设置系统环境变量,使其调用的为anaconda自带的库,而不调用系统自带的库

export LD_LIBRARY_PATH=/home/user/anaconda3/lib:$LD_LIBRARY_PATH

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

### 解决方案 `ImportError: libstdc++.so.6 GLIBCXX_3.4.29 not found` 的问题通常发生在系统中安装的 `libstdc++.so.6` 版本较低,无法满足某些 Python 包(如 `matplotlib` 或 `PIL`)对更高版本的 `GLIBCXX` 的需求。以下是详细的解决方法。 #### 确认当前 `libstdc++.so.6` 版本 通过以下命令检查系统中已安装的 `libstdc++.so.6` 是否支持所需的 `GLIBCXX` 版本: ```bash strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX ``` 如果输出中没有包含 `GLIBCXX_3.4.29`,说明需要升级或替换 `libstdc++.so.6` 文件[^1]。 #### 在 Anaconda 虚拟环境中安装兼容的 GCC 版本 为了确保虚拟环境中的依赖项与 `libstdc++.so.6` 兼容,可以安装特定版本的 GCC 和 G++: ```bash conda install -c conda-forge gcc_linux-64 gxx_linux-64 ``` 这一步会为当前虚拟环境安装适合的编译器和库文件[^3]。 #### 配置 `LD_LIBRARY_PATH` 将 Anaconda 环境中的 `lib` 目录添加到 `LD_LIBRARY_PATH` 中,以优先加载虚拟环境中的动态链接库: ```bash export LD_LIBRARY_PATH=$CONDA_PREFIX/lib:$LD_LIBRARY_PATH ``` 可以通过编辑 `~/.bashrc` 或 `~/.zshrc` 文件实现永久生效: ```bash echo "export LD_LIBRARY_PATH=$CONDA_PREFIX/lib:$LD_LIBRARY_PATH" >> ~/.zshrc source ~/.zshrc ``` 上述操作确保了虚拟环境中的 `libstdc++.so.6` 被优先加载。 #### 清理旧环境并重新创建 如果问题仍然存在,建议清理旧环境并重新创建一个新环境: ```bash conda remove --name <your_env_name> --all conda create -n <new_env_name> python=3.7 conda activate <new_env_name> ``` 然后重新安装所需包: ```bash conda install matplotlib pip install PIL ``` #### 替换系统中的 `libstdc++.so.6`(谨慎操作) 如果必须使用系统范围的解决方案,可以下载并替换系统的 `libstdc++.so.6` 文件。例如,从 GCC 官方仓库获取最新版本的 `libstdc++.so.6` 并替换现有文件: ```bash wget https://ftp.gnu.org/gnu/gcc/gcc-8.4.0/gcc-8.4.0.tar.gz tar -xvzf gcc-8.4.0.tar.gz cd gcc-8.4.0 ./configure make sudo make install ``` 之后,将生成的 `libstdc++.so.6` 文件复制到系统目录: ```bash sudo cp ./lib64/libstdc++.so.6 /usr/lib64/ ``` 注意:此方法可能会影响其他依赖于旧版本 `libstdc++.so.6` 的程序,需谨慎操作。 #### 使用软连接解决版本冲突 如果不想直接替换系统文件,可以创建一个软连接指向正确的 `libstdc++.so.6` 文件: ```bash ln -s $CONDA_PREFIX/lib/libstdc++.so.6 /usr/lib64/libstdc++.so.6 ``` 确保软连接指向的是虚拟环境中更新后的 `libstdc++.so.6` 文件[^3]。 --- ### 注意事项 - 如果服务器不能联网,可以通过手动下载所需包并上传至服务器进行安装。 - 在操作前备份重要数据,避免因误操作导致系统不稳定。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值