Error loading MPI DLL in mpi4py

自闭症网瘾萝莉.ら 提交于 2019-11-29 07:17:59

Use sys.prefix\lib\site-packages\mpi4py\bin\python-mpi.exe or add the following code to sys.prefix\lib\site-packages\mpi4py\__init__.py around line 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()

Using Mpi4py 1.3 with python 3.5 on Windows 10, I can run import mpi4py successfully but not from mpi4py import MPI. To fix it, just reinstall MPI via MPI. This works for me.

I had the same issue and no answer solved the issue.

For me, the following solved the problem. I compiled and installed the mpi4py manually as follows:

  • Install MPI SDK 10 for Windows from https://duongtrungnghia.wordpress.com/2017/03/28/install-mpi4py-on-windows-10/
  • Add C:\Program Files (x86)\Microsoft SDKs\MPI\Lib and C:\Program Files (x86)\Microsoft SDKs\MPI to your Windows environment variables (not sure if needed)
  • You need Visual Studio. Not sure what version. In my case, the mpi4py setup.py used C:\Program Files (x86)\Microsoft Visual Studio 14.0\.... although I use VS2017 currently.
  • Install Windows SDK/Kits and dev tools (https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk)
    • Open Developer Command Prompt (It is like a CMD with some extras)
    • Activate your venv by executing (venv/Scripts/activate) if you use Virtualenv
    • Create and change to a temp directory and do the following:
      • git clone https://github.com/mpi4py/mpi4py.git
      • cd mpi4py
      • python -m pip install Cython
      • python setup.py build
      • python setup.py install

My setting:

  • Windows 10
  • Python 3.7

I solved the problem. My environment is Win10, python 3.6.6, pycharm 2019.2 and linked to annaconda visual env.
1. download MS MPI, install both .mis and SDK.
2. set up environmental variables
control panel --> advanced system settings --> environmental variables --> add
(1) C:\Program Files (x86)\Microsoft SDKs\MPI and
(2) C:\Program Files\Microsoft MPI\Bin. There are my paht, you may need to change the path here.
3. install MS visual studio, community version is enough
4. Anaconda prompt, use conda install -c intel mpi4py. I read most replies but not mentioned this way.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!