h5py.File 函数为 mpi4py 抛出 NameError

h5py.File function throws NameError for mpi4py

我正在使用 h5py 和 mpi4py。我正在读取带有 as h5py.File(fname, 'w', driver='mpio', comm=MPI.COMM_WORLD) 的 h5 文件,但出现 NameError。

我检查了错误来源的源代码,它需要 h5py.h5.get_config().mpi 为 True 才能导入 mpi4py。但它设置为 False。 我安装了 mpi4py 并且运行良好。

问题出现在我更新numpy的时候,我试图回到以前的版本但是没有解决问题。在此更新之前,我对 h5py

没有任何问题

完整的消息错误是:

  File "main.py", line 87, in <module>
    memory = H5_memory(MEM_SIZE, STATE_SHAPE , fname)
  File "/My/work/dir/memory.py", line 185, in __init__
    self.f = h5py.File(fname, 'w', driver='mpio', comm=MPI.COMM_WORLD)
  File "/home/miniconda/envs/lib/python3.5/site-packages/h5py/_hl/files.py", line 270, in __init__
    fapl = make_fapl(driver, libver, **kwds)
  File "/hom/miniconda/envs/lib/python3.5/site-packages/h5py/_hl/files.py", line 73, in make_fapl
    kwds.setdefault('info', mpi4py.MPI.Info())
NameError: name 'mpi4py' is not defined

你知道如何解决这个问题吗?我没有在网上找到任何可以帮助我的答案。

谢谢

查看 h5py 的 installation documentation,安装支持 MPI 的 HDF5 库的并行版本似乎是一个选项,因此您可能在没有该选项的情况下安装了它,或者错误配置了环境变量,例如 HDF5_MPI=ON.