错误mpi4py加载DLL MPI(Error loading MPI DLL in mpi4py)

2019-07-17 12:10发布

我试图在Windows 7 64位使用Mpi4py 1.3 Python 2.7版。 我从网上下载安装版本在这里 ,其中包括的openmpi 1.6.3所以在安装目录(* / Python27 \ LIB \站点包\ mpi4py \ LIB)以下的库中:libmpi.lib,libmpi_cxx.lib,libopen-pal.lib和libopen-rte.lib。 现在,在我的代码时,试图导入:

from mpi4py import MPI

它返回以下错误:导入错误:DLL加载失败:指定的模块找不到。 我试图复制一个波夫LIB文件旁边的* / Python27 \ LIB \站点包\ mpi4py \ MPI.pyd甚至到Windows / System32下,但没有奏效。 我很欣赏你什么DLL文件丢失,以及如何修复错误的帮助?

谢谢,

@ Aso.agile

Answer 1:

使用sys.prefix\lib\site-packages\mpi4py\bin\python-mpi.exe或添加以下代码sys.prefix\lib\site-packages\mpi4py\__init__.py围绕线37:

def _init_openmpi():
    """Pre-load libmpi.dll and register OpenMPI distribution."""
    import os
    import ctypes
    if os.name != 'nt' or 'OPENMPI_HOME' in os.environ:
        return
    try:
        openmpi_home = os.path.abspath(os.path.dirname(__file__))
        openmpi_bin = os.path.join(openmpi_home, 'bin')
        os.environ['OPENMPI_HOME'] = openmpi_home
        os.environ['PATH'] = ';'.join((openmpi_bin, os.environ['PATH']))
        ctypes.cdll.LoadLibrary(os.path.join(openmpi_bin, 'libmpi.dll'))
    except Exception:
        pass

_init_openmpi()


Answer 2:

在Windows 10使用Mpi4py 1.3与Python 3.5,我可以运行import mpi4py成功,但没有from mpi4py import MPI 。 为了解决这个问题,只是通过重新安装MPI MPI 。 这对我的作品。



文章来源: Error loading MPI DLL in mpi4py