Ошибка загрузки MPI DLL в mpi4py
Я пытаюсь использовать Mpi4py 1.3 с Python 2.7 на Windows 7 64bit. Отсюда я скачал устанавливаемую версию, которая включает 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
8 ответов
Использование 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()
Используя Mpi4py 1.3 с python 3.5 на Windows 10, я могу запустить import mpi4py
успешно, но не from mpi4py import MPI
, Чтобы это исправить, просто переустановите MPI через MPI. Это работает для меня.
Я решил проблему. Моя среда - Win10, python 3.6.6, pycharm 2019.2 и связана с визуальным окружением annaconda.
1. Скачайте MS MPI, установите.mis и SDK.
2. настроить
панель управления переменными среды -> расширенные настройки системы -> переменные среды -> добавить
(1) C:\Program Files (x86)\Microsoft SDKs\MPI и
(2) C:\Program Files\Microsoft MPI\Bin. Вот и мой пат, возможно, вам придется изменить путь здесь.
3. Установите MS Visual Studio, достаточно версии сообщества
4. Приглашение Anaconda, используйте conda install -c intel mpi4py. Я прочитал большинство ответов, но не упомянул об этом.
У меня была такая же проблема, и никакой ответ не решил ее.
Для меня следующее решило проблему. Я скомпилировал и установилmpi4py
вручную следующим образом:
- Установите MPI SDK 10 для Windows со https://duongtrungnghia.wordpress.com/2017/03/28/install-mpi4py-on-windows-10/.
- Добавить
C:\Program Files (x86)\Microsoft SDKs\MPI\Lib
а такжеC:\Program Files (x86)\Microsoft SDKs\MPI
в переменные среды Windows (не уверен, если необходимо) - Вам потребуются инструменты сборки Visual Studio с MSVC 140 или чистая Visual Studio. Не уверен, какая версия. В моем случае mpi4py setup.py использовал
C:\Program Files (x86)\Microsoft Visual Studio 14.0\....
хотя сейчас я использую VS2017. - Установите Windows SDK/ комплекты и инструменты разработчика (https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk)
- Откройте командную строку разработчика (это похоже на CMD с некоторыми дополнениями)
- Активируйте Venv, выполнив (venv / Scripts / activate), если вы используете Virtualenv
- Создайте временный каталог и перейдите во временный каталог и выполните следующие действия:
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
Я попробовал следующее, и это сработало.
- Удаление OpenMPI
- Удаление
mpi4py
- Установка Microsoft MPI
- Переустановка
mpi4py
сpip
так что колесо установлено
Источник: https://groups.google.com/d/msg/mpi4py/VA7Aihi64R0/jnxAT2HtCgAJ
Я исправил ошибку, установив последнюю версию MSMPI с https://github.com/Microsoft/Microsoft-MPI.
Для тех, кто получает эту ошибку "из mpi4py import MPI ImportError: Ошибка загрузки DLL: указанная процедура не может быть найдена". Я решил это, понизив MSMPI до V10.0, он не работал с V10.2. И используйте MPISdk V8.0, вам нужно удалить MSMPI, который у вас есть сейчас, и установить V10.0 по этой ссылке MSMPIV10.0 Он не принимает установку новой версии без удаления старой, надеюсь, это сработает
В моем случае Microsoft MPI не был установлен. Убедитесь, что он у вас есть.
https://www.microsoft.com/en-us/download/details.aspx?id=57467