Konfigurasikan IPython untuk menampilkan peringatan setiap saat

Pertama kali saya melakukan sesuatu yang memunculkan peringatan di shell IPython, saya melihatnya. Tapi kali berikutnya saya tidak melakukannya. Misalnya,

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!

Bagaimana cara mengkonfigurasi IPython agar selalu menampilkan peringatan? Saya sudah mencoba:

import warnings
warnings.filterwarnings('always')

Tapi itu tidak ada bedanya.


person xnx    schedule 05.01.2015    source sumber
comment
IPython tidak mengendalikan itu. Saya mendapatkan perilaku yang sama bahkan dalam penerjemah Python biasa.   -  person BrenBarn    schedule 05.01.2015


Jawaban (1)


Saya rasa masalah ini relatif baru-baru ini ditangani oleh tim IPython. Itu tidak cocok dengan warnings karena keputusan desain yang agak tidak biasa. Mengaktifkan always sudah cukup bagi saya dengan Python biasa, dan sekarang jika saya melakukan hal yang sama di trunk 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