CentOS 7 未定义符号:ompi_mpi_逻辑8

问题描述 投票:0回答:4

我正在尝试在

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

有人有解决办法吗?

python-3.x virtualenv openmpi
4个回答
3
投票

我遇到了同样的问题,我发现我必须使用

env MPICC=
前缀安装库。

env MPICC=/usr/lib64/openmpi/bin/mpicc pip install --no-cache-dir mpi4py

2
投票

我今天遇到了这个问题,我是这样解决的: 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 都会导致问题。


1
投票

问题在于安装了

mpi4py
,同时使用了与当前版本的 MPI 不同的版本。

pip uninstall mpi4py
pip install --no-cache-dir mpi4py

以上应该可以解决问题。也许需要为 virtualenv 提供资源。


0
投票

除此之外,我必须不使用 OpenMPI 4.0.0 或 4.0.3,但我们有 mpich 3.2.1 作为可用模块并且有效,即,

undefined symbol
错误消失了。

© www.soinside.com 2019 - 2024. All rights reserved.