在mpi4py中加载MPI DLL时出错

问题描述 投票:5回答:2

我试图在Windows 7 64位上使用Mpi4py 1.3和python 2.7。我从here下载了可安装版本,其中包含OpenMPI 1.6.3,因此在安装目录(* / Python27 \ Lib \ site-packages \ mpi4py \ lib)中存在以下库:libmpi.lib,libmpi_cxx.lib,libopen-pal.lib和libopen-rte.lib。现在在我的代码中尝试导入它时:

from mpi4py import MPI

它返回以下错误:ImportError:DLL加载失败:找不到指定的模块。我试图将一个bove lib文件与* / Python27 \ Lib \ site-packages \ mpi4py \ MPI.pyd一起复制到Windows / System32,但它没有用。感谢您对缺少的DLL以及如何解决错误的帮助?

谢谢,

@ Date.agile

python python-2.7 openmpi
2个回答
2
投票

使用sys.prefix\lib\site-packages\mpi4py\bin\python-mpi.exe或将以下代码添加到第37行的sys.prefix\lib\site-packages\mpi4py\__init__.py

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()

3
投票

在Windows 10上使用Mpi4py 1.3和python 3.5,我可以成功运行import mpi4py但不能运行from mpi4py import MPI。要修复它,只需通过MPI重新安装MPI。这适合我。


1
投票

我有同样的问题,没有答案解决了这个问题。

对我来说,以下解决了这个问题。我手动编译并安装了mpi4py,如下所示:

  • https://duongtrungnghia.wordpress.com/2017/03/28/install-mpi4py-on-windows-10/安装适用于Windows的MPI SDK 10
  • C:\Program Files (x86)\Microsoft SDKs\MPI\LibC:\Program Files (x86)\Microsoft SDKs\MPI添加到您的Windows环境变量中(不确定是否需要)
  • 你需要Visual Studio。不确定是什么版本。在我的情况下,虽然我目前使用VS2017,但mpi4py setup.py使用了C:\Program Files (x86)\Microsoft Visual Studio 14.0\....
  • 安装Windows SDK / Kits和开发工具(https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk) 打开开发人员命令提示符(它就像一个带有一些额外功能的CMD) 如果您使用Virtualenv,请执行(venv / Scripts / activate)激活您的venv 创建并更改为临时目录并执行以下操作: git clone https://github.com/mpi4py/mpi4py.git cd mpi4py python -m pip install Cython python setup.py build python setup.py install

我的设定:

  • Windows 10
  • Python 3.7
© www.soinside.com 2019 - 2024. All rights reserved.