Предупреждение PEP 3118 при использовании массива ctypes в качестве массива numpy

Когда я пытаюсь использовать массив ctypes в качестве массива numpy, я получаю следующее предупреждающее сообщение:

Python 2.7.1 (r271:86832, Nov 27 2010, 18:30:46) [MSC v.1500 32 bit (Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import ctypes, numpy
>>> TenByteBuffer = ctypes.c_ubyte * 10
>>> a = TenByteBuffer()
>>> b = numpy.ctypeslib.as_array(a)
C:\Python27\lib\site-packages\numpy\ctypeslib.py:402: RuntimeWarning: Item size
computed from the PEP 3118 buffer format string does not match the actual item s
ize.
  return array(obj, copy=False)
>>> b
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0], dtype=uint8)

Кажется, что код работает. Это плохая идея игнорировать это предупреждение?

Справочная информация: Я вызываю C DLL, которая производит данные в реальном времени. Мне нужно передать DLL несколько буферов для хранения данных. Ожидая заполнения следующего буфера, я хотел бы обработать самый последний буфер с помощью numpy и сохранить результат. Я создаю буферы с помощью кода, подобного приведенному выше, и все вроде работает, но я не хочу скрывать важную проблему.

12
задан fish2000 9 July 2018 в 01:24
поделиться