树莓派4 Ubuntu21.04系统conda环境导入getfem++运行报错如何解决?
问题解决步骤
该报错的核心原因是:apt安装的系统级getfem++依赖系统自带的GFortran 10版本库,而Miniforge3 conda环境内置的libgfortran版本较低,缺少
GFORTRAN_10符号,且conda环境的动态库优先级高于系统路径,导致加载了版本不匹配的libgfortran库。
以下方案按推荐优先级排序:
方案一:直接在conda环境内安装getfem(最推荐,无混用冲突)
完全不用依赖系统安装的getfem,也不需要配置.pth文件,直接从conda-forge源安装适配conda环境的getfem包:
- 首先激活你的目标conda环境:
conda activate Conda_PY39 - 执行安装命令:
conda install -c conda-forge getfem pyvista - 安装完成后直接导入测试即可,无需额外路径配置
方案二:升级conda环境内的libgfortran版本匹配系统依赖
如果要保留现有系统getfem的配置,直接升级conda环境内的libgfortran到10版本即可解决符号缺失问题:
- 激活conda环境:
conda activate Conda_PY39 - 执行安装命令:
conda install -c conda-forge libgfortran=10 - 完成后重新测试导入getfem即可
方案三:调整动态库加载优先级
如果上述方案均不生效,可以调整conda环境的动态库搜索顺序,优先加载系统的GFortran库:
- 在conda环境的激活配置目录下新建自定义配置脚本:
mkdir -p /home/alban/miniforge3/envs/Conda_PY39/etc/conda/activate.d && touch /home/alban/miniforge3/envs/Conda_PY39/etc/conda/activate.d/lib_fix.sh - 往脚本内写入路径配置:
echo 'export LD_LIBRARY_PATH="/usr/lib/aarch64-linux-gnu/:$LD_LIBRARY_PATH"' >> /home/alban/miniforge3/envs/Conda_PY39/etc/conda/activate.d/lib_fix.sh - 重新激活conda环境后测试即可
内容的提问来源于stack exchange,提问作者Tchimy
相关产品推荐
相关产品推荐

