python h5py文件读取";OSError:无法打开文件(错误的超级块版本号)";
简短描述 我遇到一个问题,hdf5文件已在Windows计算机上写入,无法在Linux计算机上打开。错误消息为“OSError:无法打开文件(错误的超级块版本号)”。(因此,此问题可能与h5py完全无关,而是python文件open中的一般linux/windows兼容性问题) 详细描述 Windows和Linux上都使用了包含以下软件包的python虚拟环境:python h5py文件读取";OSError:无法打开文件(错误的超级块版本号)";,python,linux,windows,hdf5,h5py,Python,Linux,Windows,Hdf5,H5py,简短描述 我遇到一个问题,hdf5文件已在Windows计算机上写入,无法在Linux计算机上打开。错误消息为“OSError:无法打开文件(错误的超级块版本号)”。(因此,此问题可能与h5py完全无关,而是python文件open中的一般linux/windows兼容性问题) 详细描述 Windows和Linux上都使用了包含以下软件包的python虚拟环境: 烧瓶-0.12.2 烧瓶-RESTful-0.3.6 Jinja2-2.10 MarkupSafe-1.0 Werkzeug-0.1
- 烧瓶-0.12.2
- 烧瓶-RESTful-0.3.6
- Jinja2-2.10
- MarkupSafe-1.0
- Werkzeug-0.14.1
- aniso8601-3.0.0
- 点击-6.7
- h5py-2.7.1
- h5py-cache-1.0
- 其危险系数为-0.24
- 锁文件-0.12.2
- numpy-1.14.0
- pytz-2018.3
- 6-1.11.0
- 升级到h5py到2.8.0rc1并不能解决此问题
- 其他HDF5文件可以按预期打开
多亏了@Tom de Geus,我在Linux和Windows上尝试了HDF视图,发现示例文件无法在Linux HDF视图上打开,但可以使用Windows HDF视图打开。这表明问题在于文件和HDF,而不是h5py。感谢Pierre de Buyl确认该文件确实可以在Linux上以正确的HDF版本1.10.0打开。在Windows上,我运行的是HDF1.10.1(通过h5py安装),但在Linux上,h5py的默认安装为1.8.18。在使用cmake从源代码构建HDF之后,我也能够在Linux上打开该文件,版本为1.10.0或更高版本 使用cmake安装HDF 1.10.0的指南: 错误消息“OSError:无法打开文件(错误的超级块版本号)”令人困惑,但似乎表明旧版本的HDF(1.8.18)未配置为识别HDF 1.10.0版写入的新超级块版本号
感谢您的帮助汤姆·德·盖斯和皮埃尔·德·布伊尔:)您试过和我一起阅读吗?或任何API?在具有HDF视图的Windows上,它会正确打开文件,但会为每个数据集显示红色的“警告倒置三角形”,而在我的Linux计算机上可以使用h5py.file(“myfile.hdf5”,“r”)成功打开的其他hdf5文件中则不是这种情况。但是,在具有HDF视图的Linux上,无法打开该文件,并显示一个非信息性的“打开文件myfile.hdf5时出错”,这很有趣。问题似乎是HDF本身,而不是h5py。我已经下载了您的示例文件,并且可以在Linux下使用h5py打开它而不会出现任何问题
h5py.version.hdf5\u version
是1.10.0
。您正在运行什么Linux?我们无法在Ubuntu 16.04和Ubuntu Gnome 16.04上打开它。看来我一直在运行的h5py版本是1.8.18,谢谢你帮助Pierre,我会确保升级,看看我的位置。这确实是一个版本不兼容的问题,谢谢Pierre de Buyl!我被试图打开文件时提供的错误消息弄糊涂了,但升级到1.10.0后,文件会正确打开。
fid = make_fid(name, mode, userblock_size, fapl, swmr=swmr)
fid = h5f.open(name, flags, fapl=fapl)