【问题标题】:’Unable to open object (component not found)''无法打开对象(未找到组件)'
【发布时间】:2023-03-07 22:51:01
【问题描述】:

我正在尝试将 test.sample(state) 的输出分配给名为 test_out.h5 的文件,特别是创建一个名为 sample_ 的新组。然而,即使它编译和运行正常(作为无法简化为最小工作示例的更大代码的一部分),当我尝试打开文件时,我得到“无法打开对象(找不到组件)”。我知道 thisthis 的存在,但我没有发现它们有帮助。

   size_t num=5;

   {
   std::string test_out = "test_out.h5";
   H5::H5File f(test_out, H5F_ACC_TRUNC);

   for (size_t m = 0; m < num; m++){
      string name=std::to_string(m);
      H5::Group grp = f.createGroup("sample_"+name);
      test.sample(state);
      state.saveState(grp);}
    H5close();
    }

我正在尝试在 Python3 中打开文件,如下所示:

     f4=h5py.File('<my_dir>/test_out.h5', 'r')
     print(list(f4.keys()))

它就在那里失败了。

如果有人能指出错误,我将不胜感激。请记住,我不应该更改 C++ 代码中使用的任何包。

更新:相同的例程在另一台计算机上打开了文件,所以我仍在试图找出我的 h5py 安装突然出现的问题。

【问题讨论】:

  • 不要不必要地重复问题标题中的标签。
  • 首先要确定:是您的 h5py 安装或文件 (test_out.h5) 的问题。文件有效性测试:1) 运行 h5dump test_out.h5,2) 使用 HDFViewer 实用程序打开 test_out.h5。
  • 刚刚在另一台电脑上打开了文件,所以问题是我的h5py安装。它以前工作得很好,我卸载并重新安装,但错误仍然存​​在。

标签: python c++ h5py


【解决方案1】:

我可以通过更改 h5py 的版本来打开文件。 Atm,我无法解释为什么在使用最新版本的 h5py 的终端上运行突然出现问题,但 jupyter notebook 也适用于以前的 h5py 安装。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-21
    • 1970-01-01
    • 2022-01-17
    • 1970-01-01
    • 2011-12-23
    • 1970-01-01
    • 2013-04-13
    • 2015-07-10
    相关资源
    最近更新 更多