2010-03-14 5 views
1

quand j'utilise MySQLdb obtenir ce message:avertissement en python avec MySQLdb

/var/lib/python-support/python2.6/MySQLdb/__init__.py:34: DeprecationWarning: the sets module is deprecated from sets import ImmutableSet 

J'essaie filtrer l'avertissement avec

import warnings 
warnings.filterwarnings("ignore", message="the sets module is deprecated from sets import ImmutableSet") 

mais je ne reçois des changements.
une suggestion?
Merci beaucoup.

Répondre

4

De python documentation: vous pouvez filtrer votre avertissement de cette façon, de sorte que si d'autres mises en garde sont causés par une autre partie de votre code, il y aurait toujours affiché:

import warnings 
with warnings.catch_warnings(): 
    warnings.simplefilter("ignore", DeprecationWarning) 
    import MySQLdb 
[...] 

mais comme dit par Alex Martelli, la meilleure solution serait de mettre à jour MySQLdb afin qu'il n'utilise pas de modules obsolètes.

1

Quelle version de MySQLdb utilisez-vous? Je pense que l'actuel (1.2.3c1) devrait l'avoir corrigé voir this bug (marqué comme étant fixé à oct 2008, branche 1.2).

+0

J'ai __version__ = "1.2.2", c'est peut-être le problème. – JuanPablo

+0

@juanpablo, peut-être, même si c'est bizarre puisque vous avez la dernière version complète (que "c1" signifie "release candidate 1" pour 1.2.3) et la branche 1.2 DEVRAIT avoir corrigé le problème il y a 1 an. Le rapport de bug que je pointe à inclut une simple correction aux fichiers .py pertinents, peut-être que vous voulez faire ces petites modifications vous-même et résoudre le problème (ce qui vaut mieux que de supprimer les avertissements!), Vous devez ignorer cette importation et lier le 'frozenset' intégré à ce vieux, obsolète, obsolète, obsolète nom! –

Questions connexes