计算化学公社

标题: MMPBSA.py.MPI执行过程中出现could not import mpi4py package解决办法 [打印本页]

作者
Author:
mengskl    时间: 2023-1-15 20:04
标题: MMPBSA.py.MPI执行过程中出现could not import mpi4py package解决办法
本帖最后由 mengskl 于 2023-1-15 20:12 编辑

在ambertool中使用MMPBSA.py.MPI多线程计算MM-PBSA/GBSA时,可能会出现如下错误:
Could not import mpi4py package
按python一贯的报错思路,一般认为是没有安装mpi4py。但是这个包通常在amber编译过程中由miniconda直接安装的,不应该出现没有安装的情况
[AMBER-Developers] mpi4py won't be installed via configure_python from Hai Nguyen on 2017-08-18 (Amber Developers Archive Aug 2017) (ambermd.org)

找不到mpi4py除了在自行编译的版本中存在,在anaconda安装的ambertools也存在

这个错误到底问题在哪里,如果在amber环境下执行python -c 'import mpi4py'。会发现正常执行,说明mpi4py其实是正常安装了
但是如果执行python -c 'from mpi4py import MPI‘,会发现提示importError: libmpi.so.12: cannot open shared object file....
原来是找不到libmpi.so.12
其实,安装高版本的openmpi就能解决这个问题

1.下载高版本openmpi
Open MPI: Version 4.1 (open-mpi.org)在官网上下载。目前最新的稳定版本是openmpi-4.1.4。直接下载或者wget下载
2.解压文件并安装
在解压完成目录中执行 ./configure --prefix=(openmpi安装位置)make install -j XXX
3.设置环境变量
export MPI_HOME=你上一步中openmpi的安装位置
export PATH=${MPI_HOME}/bin:${PATH}
export LD_LIBRARY_PATH=${MPI_HOME}/lib:${LD_LIBRARY_PATH}
export MANPATH=${MPI_HOME}/share/man:${MANPATH}

在设置完成环境变量后,再执行python -c 'from mpi4py import MPI' 会发现成功了,这里已经完成了需要的环境安装

4.重新编译amber
完成重新编译后,再运行MMPBSA.py.MPI会发现,问题成功解决



作者
Author:
乙酰胞壁酸    时间: 2023-2-14 21:35
还有一种情况会导致Could not import mpi4py package,并且python -c 'import mpi4py'和python -c 'from mpi4py import MPI‘都正常
这时候要注意amber一般使用的时自带的miniconda中的python,如果自己安装了其他conda和python则需要更改MMPBSA.py.MPI的python环境
不过个人建议将conda和python链接到amber自带的miniconda和python中重新安装mpi4py包
具体情况和报错可以参考
http://archive.ambermd.org/202208/0041.html




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3