2016-05-20 9 views
5

ich Python Numpy Paket auf einer meiner Maschinen aktualisiert, und anscheinend jetzt habe ich an a deprecated feature of numpy für eine Weile zu verlassen:Warum sehe ich Numpys DeprecationWarning nicht?

>>> np.__version__ 
'1.10.4' 
>>> a = np.ones(10, dtype=np.uint16) 
>>> a /= 0.5 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: ufunc 'true_divide' output (typecode 'd') could not be coerced to provided output parameter (typecode 'H') according to the casting rule ''same_kind'' 

Einer der Kommentatoren in den obigen Link wies darauf hin:

Wahrscheinlich bedeutet, dass Sie die deprecation Warnungen da immer nicht sehen;)

... was richtig ist, habe ich nicht.

Aber warum? Wie habe ich es geschafft, die Verwarnungswarnung zu verpassen?

In Übereinstimmung mit the documentation dieser gleichen Code gearbeitet anders in meiner früheren numpy Version:

>>> np.__version__ 
'1.9.2' 
>>> a = np.ones(10, dtype=np.uint16) 
>>> a /= 0.5 
>>> a 
array([2, 2, 2, 2, 2, 2, 2, 2, 2, 2], dtype=uint16) 

... aber sollte nicht dieser Trigger eine Warnung? Missverstehe ich, wie numpy Ablehnungswarnungen behandelt? Wie kann ich sicher sein, dass ich keine anderen Verwarnungswarnungen verpasse?

Meine Python-Umgebung:

Python 3.5.1 |Anaconda 4.0.0 (64-bit)| (default, Feb 16 2016, 09:49:46) [MSC v.1900 64 bit (AMD64)] on win32 
+1

sie standardmäßig ignoriert sind – wim

Antwort

6

DeprecationWarnings sind ignored by default. Sie müssen sie aktivieren, entweder durch Python läuft mit dem -Wd flag:

python -Wd my_source_file.py 

oder durch eine neue Warnung Filterspezifikation installieren, die eine überschreibt für das Ignorieren DeprecationWarning:

import warnings 

# Print any warning the first time a given source line issues them, 
# overriding built-in filters that ignore some warning types. 
warnings.filterwarnings("default") 
+0

Jesus, gut zu wissen. Großes Loch in meiner Ausbildung, danke für die Korrektur. – Andrew

+1

hey vielen Dank dafür. wild. Übrigens glaube ich, du meintest 'warnings.filterwarnings' (Plural) nicht' warnings.filterwarning' –

+0

@MaxPower: Whoops! Fest. – user2357112