“无法打开对象(找不到组件)”

时间:2019-12-11 11:20:21

标签: python c++ h5py

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

   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安装突然出现问题的原因。

1 个答案:

答案 0 :(得分:0)

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