一、问题现象描述
安装ixformer或者其他组件时报:
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for mpi4py
Failed to build mpi4py
ERROR: ERROR: Failed to build installable wheels for some pyproject.toml based projects (mpi4py)
error: Cannot link MPI programs. Check your configuration!!! [end of output] note: This error originates from a subprocess, and is likely not a problem with pip. ERROR: Failed building wheel for mpi4py Failed to build mpi4py ERROR: Could not build wheels for mpi4py, which is required to install pyproject.toml-based projects
这个err是os默认没有安装mpi4py,直接pip安装mpi4py也是一样的err,安装open-mpi后也是一样会err,正确步骤如下:
二、mpi4py安装
PS:安装完还是会遇到libmpi.so.40的问题,看后续操作。
1、cuda环境:conda install mpi4py
2、非cuda环境:
pip install mpi4py
3、再次安装ixformer就成功了
三、推理模型还是会遇到libmpi.so.40的问题
ImportError: libmpi.so.40: cannot open shared object file: No such file or directory
下载最新的稳定版本源码包 -- 下载失败就是网络不顺畅,多试几次。
然后编译、安装,就两条命令
shell$ gunzip -c openmpi-5.0.3.tar.gz | tar xf - shell$ cd openmpi-5.0.3 shell$ ./configure --prefix=/usr/local #装不上的话做个新的目录 <...lots of output...> shell$ make all install
安装完成后试用whereis 查看新安装的 openmpi 在哪里。
默认装在了 /usr/local/lib/opmpi 内 ,所需要的 libmpi.so.40 在上级目录内可以查到,将此目录追加到 LD_LIBRARY_PATH 内即可。
添加环境变量:
export LD_LIBRARY_PATH=/usr/local/lib/:$LD_LIBRARY_PATH
最好也把他写在 ~/.bashrc文件内
PS:如果装完发现还是提示缺少libmpi.so.40,检查一下/usr/local/lib/openmpi 目录内是否完整,如果只有.so文件,需要重新安装,并在命令中改变安装路径
比如:
./configure --prefix=/usr/local/openmpi #install 结束才会自动创建这个目录
make all install
装完按照实际路径设置环境变量后即可。