So unterdrücken Sie eine Warnung eines Drittanbieters mit warnings.filterwarnings

Ich verwende Paramiko in meinem Python-Code (für SFTP). Alles funktioniert einwandfrei, außer dass ich jedes Mal eine Paramiko-Funktion importiere oder aufrufe. Diese Warnung würde erscheinen:

C:\Python26\lib\site-packages\Crypto\Util\randpool.py:40: RandomPool_Deprecation
Warning: This application uses RandomPool, which is BROKEN in older releases.  S
ee http://www.pycrypto.org/randpool-broken
  RandomPool_DeprecationWarning)

Ich weiß, dass dies damit zusammenhängt, dass Paramiko einige veraltete Funktionen von PyCrypto verwendet.

Meine Frage ist, gibt es eine Möglichkeit, diese Warnung programmgesteuert zu unterdrücken? Ich habe es versucht:

warnings.filterwarnings(action='ignore', \
category=DeprecationWarning, module='paramiko')

und sogar das:

warnings.filterwarnings(action='ignore', \
category=DeprecationWarning, module='randpool')

before 'import paramiko' Anweisung und vor paramiko-spezifischen Funktionsaufrufen, aber nichts funktioniert. Diese Warnung wird immer wieder angezeigt, egal was passiert. Wenn es hilft, ist hier der Code in der Bibliothek eines Drittanbieters, der die Warnung ausgibt:

in randpool.py

from Crypto.pct_warnings import RandomPool_DeprecationWarning
import Crypto.Random
import warnings

class RandomPool:
    """Deprecated.  Use Random.new() instead.

    See http://www.pycrypto.org/randpool-broken
    """
    def __init__(self, numbytes = 160, cipher=None, hash=None, file=None):
        warnings.warn("This application uses RandomPool, which is BROKEN in older releases.  See http://www.pycrypto.org/randpool-broken",
            RandomPool_DeprecationWarning)

Wenn Sie sich damit auskennen, helfen Sie mir bitte, diese Warnung auszuschalten.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage