python DLL加载失败:执行“从mpi4py导入MPI”时找不到指定的模块

k4ymrczo  于 2023-05-05  发布在  Python
关注(0)|答案(8)|浏览(1150)

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

from mpi4py import MPI

它返回以下错误:
ImportError:DLL加载失败:找不到指定的模块。
我尝试将上述lib文件与 */Python 27\Lib\site-packages\mpi 4py\MPI.pyd一起复制,甚至复制到Windows/System32,但不起作用。我很感激你的帮助什么DLL是失踪,以及如何修复错误?

1tu0hz3e

1tu0hz3e1#

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

7d7tgy0s

7d7tgy0s2#

我解决了问题。我的环境是Win10,Python 3.6.6,pycharm 2019.2,并链接到annaconda visual env。
1.下载MS MPI,安装.mis和SDK。
2.设置环境变量
控制面板--〉高级系统设置--〉环境变量--〉添加
(1)C:\Program Files(x86)\Microsoft SDK\MPI和
(2)C:\Program Files\Microsoft MPI\Bin。这是我的路,你可能需要在这里改变路径。
3.安装MS Visual Studio,社区版本就足够了
4. Anaconda提示符,使用***conda install -c intel mpi 4py***。我读了大多数的回复,但没有提到这种方式。

xiozqbni

xiozqbni3#

我也遇到了同样的问题,没有答案解决了这个问题。
对我来说,以下解决了这个问题。我手动编译并安装了mpi4py,如下所示:

  • https://duongtrungnghia.wordpress.com/2017/03/28/install-mpi4py-on-windows-10/安装MPI SDK 10 for Windows
  • C:\Program Files (x86)\Microsoft SDKs\MPI\LibC:\Program Files (x86)\Microsoft SDKs\MPI添加到Windows环境变量(不确定是否需要)
  • 您需要Visual Studio Build Tools with MSVC 140或纯Visual Studio。不知道是什么版本。在我的例子中,mpi 4pysetup.py使用C:\Program Files (x86)\Microsoft Visual Studio 14.0\....,尽管我目前使用VS 2017。
  • 安装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
s71maibg

s71maibg4#

使用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()
o75abkj4

o75abkj45#

我尝试了以下方法,它奏效了。
1.卸载OpenMPI
1.正在卸载mpi4py
1.安装Microsoft MPI
1.使用pip重新安装mpi4py,以便安装车轮
来源:https://groups.google.com/d/msg/mpi4py/VA7Aihi64R0/jnxAT2HtCgAJ

h79rfbju

h79rfbju6#

我通过从https://github.com/Microsoft/Microsoft-MPI安装最新版本的MSMPI修复了该错误

0md85ypi

0md85ypi7#

对于从mpi4py import得到此错误的任何人,MPI ImportError:DLL加载失败:无法找到指定的过程。”我通过将MSMPI降级到V10.0解决了这个问题,它在V10.2中不起作用。使用MPISdk V8.0,您必须卸载您现在拥有的MSMPI并从此链接MSMPIV10.0安装V10.0它不接受在不卸载旧版本的情况下安装新版本,希望它能正常工作

fiei3ece

fiei3ece8#

在我的例子中,没有安装Microsoft MPI。确保你有它。
https://www.microsoft.com/en-us/download/details.aspx?id=57467

相关问题