我正在Windows 7 64bits上将Mpi4py 1.3与python
2.7一起使用。我从此处下载了包含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以及如何解决该错误的帮助。
谢谢,
@ Aso.agile
在第37行附近使用sys.prefix\lib\site-packages\mpi4py\bin\python- mpi.exe
或添加以下代码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()