我正在尝试在
mpi4py
机器上安装依赖于 CentOS 7
的 python(3) 包。
我已经尝试了多种方法来做所有事情,甚至从干净开始
virtualenvs
但我不断得到:
ImportError: $PATH_TO_VENV/lib/python3.6/site-packages/mpi4py/MPI.cpython-36m-x86_64-linux-gnu.so: undefined symbol: ompi_mpi_logical8
即使通过
pip
成功安装后,我只是在解释器中写入:,也会出现此问题
>>> import mpi4py
>>> from mpi4py import MPI
有人有解决办法吗?
我遇到了同样的问题,我发现我必须使用
env MPICC=
前缀安装库。
env MPICC=/usr/lib64/openmpi/bin/mpicc pip install --no-cache-dir mpi4py
我今天遇到了这个问题,我是这样解决的: conda 安装 mpi4py
将下载以下软件包:
package | build
---------------------------|-----------------
mpi-1.0 | openmpi 4 KB https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
mpi4py-3.0.3 | py37hbfacf26_1 647 KB https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
openmpi-4.0.3 | hdf1f1ad_1 3.9 MB https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
------------------------------------------------------------
Total: 4.6 MB
我认为缺少 mpi-1.0 或过时的 openmpi 都会导致问题。
问题在于安装了
mpi4py
,同时使用了与当前版本的 MPI 不同的版本。
pip uninstall mpi4py
pip install --no-cache-dir mpi4py
以上应该可以解决问题。也许需要为 virtualenv 提供资源。
除此之外,我必须不使用 OpenMPI 4.0.0 或 4.0.3,但我们有 mpich 3.2.1 作为可用模块并且有效,即,
undefined symbol
错误消失了。