【问题标题】:Locking of HDF files using h5py使用 h5py 锁定 HDF 文件
【发布时间】:2018-12-01 08:03:07
【问题描述】:

我有一大堆代码通过 h5py 与 hdf 文件交互。该代码已经工作多年。最近,随着 python 环境的变化,我收到了这个新的错误消息。

IOError: Unable to open file (unable to lock file, errno = 11, error message = 'Resource temporarily unavailable')

有趣的是,错误在某些地方间歇性发生,而在其他地方则持续发生。在它经常发生的地方,我查看了我的代码并确认没有其他 h5py 实例连接到该文件,并且最后一个连接已正确刷新和关闭。在环境变化之前,这一切都运行良好。

这是我的 conda 环境中的 sn-ps:

h5py 2.8.0 py27h470a237_0 conda-forge hdf4 4.2.13 0 conda-forge hdf5 1.10.1 2 conda-forge

【问题讨论】:

  • 你能构造一个最小的例子来显示这个错误吗?
  • 问题的可能来源:磁盘已满、共享文件系统、权限问题。正如@TomdeGeus 所提到的,一个最小的例子会有所帮助!

标签: python-2.7 hdf5 h5py hdf


【解决方案1】:

我的问题!无法以晦涩的方法关闭文件。有趣的是,在某些情况下解锁文件只需要重新启动 ipython,而在其他情况下需要完全重新启动。

【讨论】:

    【解决方案2】:

    使用 h5py.File(),可以多次打开同一个 .h5 文件以供读取(“r”)。但是 h5py 不支持多个线程。您可能会遇到多个并发读取器的不良数据。

    【讨论】:

      【解决方案3】:

      我没有意识到其他进程正在运行。我是如何解决我的问题的:

      1. 使用ps aux | grep myapp.py 查找运行myapp.py 的进程号。
      2. 使用kill 命令终止进程
      3. 再次运行

      【讨论】:

        猜你喜欢
        • 2017-08-26
        • 1970-01-01
        • 2021-02-22
        • 2014-10-04
        • 2016-12-11
        • 2020-06-12
        • 1970-01-01
        • 2021-02-23
        • 2013-03-31
        相关资源
        最近更新 更多