首页 > 解决方案 > '无法打开对象(未找到组件)'

问题描述

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

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

标签: pythonc++h5py

解决方案


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


推荐阅读