Почему catch_warnings () создает предупреждения позже - PullRequest
0 голосов
/ 19 ноября 2018

Я пытаюсь избежать следующих RuntimeWarnings. (Я знаю, что обновление пакетов может устранить предупреждения, но я не могу обновить. Я знаком с RuntimeWarning: размер numpy.dtype изменен, может указывать на двоичную несовместимость ). Мой вопрос заключается в том, что происходит с пакетом предупреждений здесь, и почему перехват предупреждений до import h5py вызывает предупреждения позже.

Этот код:

import warnings
with warnings.catch_warnings() as x:
    import numpy
import h5py

выводит RuntimeWarings:

/usr/local/lib/python2.7/dist-packages/h5py/__init__.py:34: RuntimeWarning: numpy.dtype size changed, may indicate binary incompatibility. Expected 96, got 80
  from ._conv import register_converters as _register_converters
/usr/local/lib/python2.7/dist-packages/h5py/__init__.py:43: RuntimeWarning: numpy.dtype size changed, may indicate binary incompatibility. Expected 96, got 80
  from . import h5a, h5d, h5ds, h5f, h5fd, h5g, h5r, h5s, h5t, h5p, h5z
/usr/local/lib/python2.7/dist-packages/h5py/_hl/group.py:21: RuntimeWarning: numpy.dtype size changed, may indicate binary incompatibility. Expected 96, got 80
  from .. import h5g, h5i, h5o, h5r, h5t, h5l, h5p

Но этот код:

import numpy
import h5py

ничего не выводит.

Чтобы воспроизвести это, numpy==1.14.2 и h5py==2.7.1.

...