Настройте IPython для постоянного отображения предупреждений

В первый раз, когда я делаю что-то, что вызывает предупреждение в оболочке IPython, я это вижу. Но последующие разы не делаю. Например,

In [1]: import numpy as np
In [2]: np.uint8(250) * np.uint8(2)
/Users/me/anaconda/envs/py33/bin/ipython:1: RuntimeWarning: overflow encountered in ubyte_scalars
#!/bin/bash /Users/me/anaconda/envs/py33/bin/python.app
Out[2]: 244

In [3]: np.uint8(250) * np.uint8(2)
Out[3]: 244       # No warning!

Как настроить IPython, чтобы всегда отображались предупреждения? Я пытался:

import warnings
warnings.filterwarnings('always')

Но это не имеет никакого значения.


person xnx    schedule 05.01.2015    source источник
comment
IPython не контролирует это. Я получаю такое же поведение даже в простом интерпретаторе Python.   -  person BrenBarn    schedule 05.01.2015


Ответы (1)


Я думаю, что это было решено относительно недавно командой IPython. Это не очень хорошо работало с warnings из-за несколько необычного дизайнерского решения. Мне достаточно Turing на always в простом Python, и теперь, если я сделаю то же самое в стволе IPython:

In [1]: import warnings

In [2]: warnings.filterwarnings('always')

In [3]: import numpy as np

In [4]: np.uint8(250) * np.uint8(2)
/home/dsm/sys/root/bin/ipython3.4:1: RuntimeWarning: overflow encountered in ubyte_scalars
  #!/home/dsm/sys/root/bin/python3.4
Out[4]: 244

In [5]: np.uint8(250) * np.uint8(2)
/home/dsm/sys/root/bin/ipython3.4:1: RuntimeWarning: overflow encountered in ubyte_scalars
  #!/home/dsm/sys/root/bin/python3.4
Out[5]: 244
person DSM    schedule 05.01.2015