numpy.memmap returns 内存不足,但有足够的可用空间

numpy.memmap returns not enough memory while there are plenty available

在 64 位 windows 机器上对 numpy.memmap() 的典型调用期间,python 引发以下错误:

OSError: [WinError 8] Not enough memory resources are available to process this command

另一台 windows 机器用不同的文本引发相同的错误:

OSError: [WinError 8] Not enough storage is available to process this command.

代码摘要如下:

with open(infile, 'rb') as f:
  ......
  array = numpy.memmap(f, dtype='uint8', mode='r', offset=offset, shape=arraysize).tolist()

Python 这次只用了 50MB 的内存。 运行 内存不足的原因是什么?

事实证明这里的问题是 memmap 调用中的 offset + shape 大于文件的总大小(即我试图读取超出文件)。

关于内存资源的错误消息在这种情况下有点误导。