IOError:无法读取数据(无法打开目录) – 缺lessgzip压缩filter

我从来没有使用HDF5文件,并开始我收到一些示例文件。 我一直在用h5py检查所有的基础知识,看看这些文件中的不同组,他们的名字,键,值等等。 一切工作正常,直到我想查看保存在组中的数据集。 我得到他们.shape.dtype ,但是当我尝试通过索引访问随机值(例如grp["dset"][0] ),我得到以下错误:

 IOError Traceback (most recent call last) <ipython-input-45-509cebb66565> in <module>() 1 print geno["matrix"].shape 2 print geno["matrix"].dtype ----> 3 geno["matrix"][0] /home/sarah/anaconda/lib/python2.7/site-packages/h5py/_hl/dataset.pyc in __getitem__(self, args) 443 mspace = h5s.create_simple(mshape) 444 fspace = selection._id --> 445 self.id.read(mspace, fspace, arr, mtype) 446 447 # Patch up the output for NumPy /home/sarah/anaconda/lib/python2.7/site-packages/h5py/h5d.so in h5py.h5d.DatasetID.read (h5py/h5d.c:2782)() /home/sarah/anaconda/lib/python2.7/site-packages/h5py/_proxy.so in h5py._proxy.dset_rw (h5py/_proxy.c:1709)() /home/sarah/anaconda/lib/python2.7/site-packages/h5py/_proxy.so in h5py._proxy.H5PY_H5Dread (h5py/_proxy.c:1379)() IOError: Can't read data (Can't open directory) 

我已经在h5py的Google小组中发布了这个问题,在那里有人build议我可能没有安装数据集。 但是,据我所知,HDF5文件仅使用gzip压缩来创build,这应该是一个可移植的标准。
有人知道我可能会在这里失踪吗? 我什至不能在任何地方find这个错误或类似的问题的描述,包括有问题的数据集的文件,可以很容易地打开HDFView软件。

编辑
显然,这个错误是由于某些原因,gzip压缩filter在我的系统上不可用。 如果我尝试使用gzip压缩创build示例文件,则会发生这种情况:

 --------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-33-dd7b9e3b6314> in <module>() 1 grp = f.create_group("subgroup") ----> 2 grp_dset = grp.create_dataset("dataset", (50,), dtype="uint8", chunks=True, compression="gzip") /home/sarah/anaconda/lib/python2.7/site-packages/h5py/_hl/group.pyc in create_dataset(self, name, shape, dtype, data, **kwds) 92 """ 93 ---> 94 dsid = dataset.make_new_dset(self, shape, dtype, data, **kwds) 95 dset = dataset.Dataset(dsid) 96 if name is not None: /home/sarah/anaconda/lib/python2.7/site-packages/h5py/_hl/dataset.pyc in make_new_dset(parent, shape, dtype, data, chunks, compression, shuffle, fletcher32, maxshape, compression_opts, fillvalue, scaleoffset, track_times) 97 98 dcpl = filters.generate_dcpl(shape, dtype, chunks, compression, compression_opts, ---> 99 shuffle, fletcher32, maxshape, scaleoffset) 100 101 if fillvalue is not None: /home/sarah/anaconda/lib/python2.7/site-packages/h5py/_hl/filters.pyc in generate_dcpl(shape, dtype, chunks, compression, compression_opts, shuffle, fletcher32, maxshape, scaleoffset) 101 102 if compression not in encode: --> 103 raise ValueError('Compression filter "%s" is unavailable' % compression) 104 105 if compression == 'gzip': ValueError: Compression filter "gzip" is unavailable 

有没有人有这方面的经验? HDF5库的安装以及h5py软件包似乎没有出错。

不能只评论 – 信誉太低。

我有同样的问题,只需运行“conda update anaconda”,问题就消失了。

我有一个类似的问题,

 $ python3 -c 'import h5py; f=h5py.File("file.h5"); d=f["FVC"][:,:]' Traceback (most recent call last): File "<string>", line 1, in <module> File "h5py/_objects.pyx", line 54, in h5py._objects.with_phil.wrapper (/home/ilan/minonda/conda-bld/work/h5py/_objects.c:2696) File "h5py/_objects.pyx", line 55, in h5py._objects.with_phil.wrapper (/home/ilan/minonda/conda-bld/work/h5py/_objects.c:2654) File "/home/pinaultf/system/anaconda2/envs/deveg-dev/lib/python3.5/site-packages/h5py/_hl/dataset.py", line 482, in __getitem__ self.id.read(mspace, fspace, arr, mtype, dxpl=self._dxpl) File "h5py/_objects.pyx", line 54, in h5py._objects.with_phil.wrapper (/home/ilan/minonda/conda-bld/work/h5py/_objects.c:2696) File "h5py/_objects.pyx", line 55, in h5py._objects.with_phil.wrapper (/home/ilan/minonda/conda-bld/work/h5py/_objects.c:2654) File "h5py/h5d.pyx", line 181, in h5py.h5d.DatasetID.read (/home/ilan/minonda/conda-bld/work/h5py/h5d.c:3240) File "h5py/_proxy.pyx", line 130, in h5py._proxy.dset_rw (/home/ilan/minonda/conda-bld/work/h5py/_proxy.c:1869) File "h5py/_proxy.pyx", line 84, in h5py._proxy.H5PY_H5Dread (/home/ilan/minonda/conda-bld/work/h5py/_proxy.c:1517) OSError: Can't read data (Can't open directory) 

我在一个虚拟环境中遇到了这个问题,而不是在另一个虚拟环境中,即使显然h5py版本是相同的(2.6.0)。

解决了这个问题:

 $ pip uninstall h5py $ pip install h5py