Conda虚拟环境导入nest-simulator报错:libhdf5.so.200无法打开
解决nest-simulator导入时libhdf5.so.200找不到的问题
问题重现
在Conda虚拟环境中先后安装PyTorch和nest-simulator后,导入PyTorch正常,但执行python -c 'import nest'时出现以下错误:
(testenv) matteo@masked-hero:~$ python -c 'import nest' Traceback (most recent call last): File "<string>", line 1, in <module> File "/home/matteo/anaconda3/lib/python3.11/site-packages/nest/__init__.py", line 63, in <module> from .ll_api_kernel_attributes import KernelAttribute # noqa File "/home/matteo/anaconda3/lib/python3.11/site-packages/nest/ll_api_kernel_attributes.py", line 22, in <module> from .ll_api import sr, stack_checker, sps, spp File "/home/matteo/anaconda3/lib/python3.11/site-packages/nest/ll_api.py", line 54, in <module> from . import pynestkernel as kernel # noqa pylint: disable=no-name-in-module ImportError: libhdf5.so.200: cannot open shared object file: No such file or directory
已确认虚拟环境的hdf5目录中存在该文件,且重装hdf5无效。
解决步骤
方法1:临时设置动态链接库路径(快速测试)
- 激活虚拟环境:
conda activate testenv - 将虚拟环境的lib目录(通常为
$CONDA_PREFIX/lib)添加到动态链接库路径:export LD_LIBRARY_PATH=$CONDA_PREFIX/lib:$LD_LIBRARY_PATH - 再次测试导入nest:
若成功,说明问题源于动态链接库路径未包含虚拟环境的hdf5库。python -c 'import nest'
方法2:永久设置虚拟环境的动态链接库路径
避免每次激活环境手动设置路径,可创建自动执行脚本:
- 生成激活脚本目录:
mkdir -p $CONDA_PREFIX/etc/conda/activate.d - 创建路径设置脚本:
echo 'export LD_LIBRARY_PATH=$CONDA_PREFIX/lib:$LD_LIBRARY_PATH' > $CONDA_PREFIX/etc/conda/activate.d/set_hdf5_path.sh - 退出并重新激活虚拟环境,路径会自动生效,再次测试导入nest即可。
方法3:重新安装兼容版本的nest-simulator
若上述方法无效,可能是nest-simulator安装时链接了系统hdf5而非虚拟环境版本,可重新安装适配版本:
- 卸载现有nest-simulator:
# Conda安装的情况 conda remove nest-simulator # Pip安装的情况 pip uninstall nest-simulator - 从conda-forge源安装兼容版本:
该源会自动匹配与nest兼容的hdf5版本,规避版本不匹配问题。conda install -c conda-forge nest-simulator
内容的提问来源于stack exchange,提问作者Matteo
相关产品推荐
相关产品推荐

