Установка h5py mpi в Windows с помощью Visual Studio - PullRequest
0 голосов
/ 12 апреля 2019

Я пытался установить h5py, но у меня проблема с настройкой. Я пытаюсь следовать руководству объяснил http://docs.h5py.org/en/stable/build.html#custom-installation Я впервые установил на Powershell:

$env:HDF5_MPI="ON"

и затем выполните команду

pip install --no-binary=h5py  h5py

, который дает мне следующий вывод в конце (есть еще несколько перед началом следующего фрагмента):

warning: h5py\api_types_hdf5.pxd:732:6: 'H5Z_ENABLE_EDC' redeclared
    warning: h5py\api_types_hdf5.pxd:733:6: 'H5Z_NO_EDC' redeclared
    building 'h5py.defs' extension
    creating build\temp.win-amd64-3.6
    creating build\temp.win-amd64-3.6\Release
    creating build\temp.win-amd64-3.6\Release\Users
    creating build\temp.win-amd64-3.6\Release\Users\bdaniele
    creating build\temp.win-amd64-3.6\Release\Users\bdaniele\AppData
    creating build\temp.win-amd64-3.6\Release\Users\bdaniele\AppData\Local
    creating build\temp.win-amd64-3.6\Release\Users\bdaniele\AppData\Local\Temp
    creating build\temp.win-amd64-3.6\Release\Users\bdaniele\AppData\Local\Temp\pip-install-gmwxxuog
    creating build\temp.win-amd64-3.6\Release\Users\bdaniele\AppData\Local\Temp\pip-install-gmwxxuog\h5py
    creating build\temp.win-amd64-3.6\Release\Users\bdaniele\AppData\Local\Temp\pip-install-gmwxxuog\h5py\h5py
    C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -DH5_USE_16_API -D_HDF5USEDLL_ -DH5_BUILT_AS_DYNAMIC_LIB -I.\h5py -IC:\Users\bdaniele\AppData\Local\Temp\pip-install-gmwxxuog\h5py\lzf -IC:\Users\bdaniele\AppData\Local\Temp\pip-install-gmwxxuog\h5py\windows -IC:\Users\bdaniele\framework\venv\Lib\site-packages\numpy\core\include -IC:\Users\bdaniele\framework\venv\Lib\site-packages\mpi4py\include -Ic:\users\bdaniele\appdata\local\continuum\anaconda3\include -Ic:\users\bdaniele\appdata\local\continuum\anaconda3\include "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\cppwinrt" /TcC:\Users\bdaniele\AppData\Local\Temp\pip-install-gmwxxuog\h5py\h5py\defs.c /Fobuild\temp.win-amd64-3.6\Release\Users\bdaniele\AppData\Local\Temp\pip-install-gmwxxuog\h5py\h5py\defs.obj
    defs.c
    C:\Users\bdaniele\AppData\Local\Temp\pip-install-gmwxxuog\h5py\h5py\defs.c(634): fatal error C1083: Cannot open include file: 'mpi.h': No such file or directory
    error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\BuildTools\\VC\\Tools\\MSVC\\14.16.27023\\bin\\HostX86\\x64\\cl.exe' failed with exit status 2

Я могу без проблем компилировать и запускать программы, используя один и тот же компилятор с включенными параллельными инструментами (MPI, OpenMP). Документация по h5py не объясняет, как настроить h5py в Windows с помощью Visual Studio. У меня нет прав администратора. Я хотел бы использовать этот пакет с включенной опцией MPI, потому что я хотел бы в конечном итоге читать и писать параллельно (пример: http://docs.h5py.org/en/stable/mpi.html#using-parallel-hdf5-from-h5py),, и эта функция, кажется, установлена ​​с h5py.

Что я могу сделать, чтобы решить эту проблему? Спасибо!

Обновление

После добавления путей для библиотек MPI и HDF5 в файл setup_build.py я смог установить h5py. Однако, когда я пытаюсь запустить скрипт на python, при импорте h5py выдается ошибка:

Traceback (most recent call last):
  File ".\testparh5.py", line 2, in <module>
    import h5py
  File "C:\Users\bdaniele\AppData\Local\Continuum\anaconda3\lib\site-packages\h5py-2.9.0.post0-py3.6-win-amd64.egg\h5py\__init__.py", line 26, in <module>
    from . import _errors
  File "MPI.pxd", line 62, in init h5py._errors
ValueError: mpi4py.MPI.Message size changed, may indicate binary incompatibility. Expected 40 from C header, got 32 from PyObject

Это связано с mpi4py или другими пакетами?

...