aarch64架构Miniconda3环境GLIBCXX缺失及包兼容问题求助
问题解决方案
一、解决GLIBCXX_3.4.30缺失的ImportError
由于你使用的是Miniconda环境,优先通过conda管理库,不要修改系统自带的libstdc++,避免破坏系统环境:
- 临时修复(单次会话有效):在终端执行以下命令,让conda环境的libstdc++优先加载,再尝试导入包:
export LD_PRELOAD=$CONDA_PREFIX/lib/libstdc++.so.6 - 永久修复:把上面的命令添加到conda环境的激活脚本里,执行以下命令后,每次激活环境都会自动生效:
echo 'export LD_PRELOAD=$CONDA_PREFIX/lib/libstdc++.so.6' >> $CONDA_PREFIX/etc/conda/activate.d/env_vars.sh - 升级环境内的libstdc++:如果上面的方法无效,直接安装conda-forge提供的新版libstdc++:
安装完成后重启环境,再测试导入包。conda install -c conda-forge libstdcxx-ng
二、查询并安装与numpy 1.22.0兼容的包版本
1. 查询兼容版本
用conda的search命令,指定numpy版本约束来筛选各包的兼容版本:
- 查询keras:
conda search keras --override-channels -c conda-forge -c defaults --constraint "numpy=1.22.0" - 查询kneed:
conda search kneed --constraint "numpy=1.22.0" - 同理,替换包名即可查询librosa、seaborn、scikit-learn、tensorflow的兼容版本。
2. 安装兼容版本
根据查询到的版本号,直接指定安装,示例命令(版本号以实际查询结果为准):
conda install numpy=1.22.0 keras=2.10.0 kneed=0.8.1 librosa=0.9.2 seaborn=0.12.1 scikit-learn=1.1.3 tensorflow=2.10.0
如果需要更严谨的环境配置,可以创建environment.yml文件,内容示例:
name: your_env_name channels: - conda-forge - defaults dependencies: - numpy=1.22.0 - keras=2.10.0 - kneed=0.8.1 - librosa=0.9.2 - seaborn=0.12.1 - scikit-learn=1.1.3 - tensorflow=2.10.0
然后执行conda env create -f environment.yml创建环境。
内容的提问来源于stack exchange,提问作者Susan
相关产品推荐
相关产品推荐

