2010-02-11 14 views
6

Attualmente sto ricevendo l'avviso ogni volta che ho eseguito uno script Python che utilizza MySQLdb:errore durante l'utilizzo di Python MySQLdb - modulo imposta è deprecato

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

Preferirei non si scherza con la loro lib, se possibile. Sono su server Ubuntu. Qualcuno sa un modo semplice per risolvere quel messaggio di avviso?

Grazie

UPDATE: fisso che sulla base dei suggerimenti di seguito e questo link: https://bugzilla.redhat.com/show_bug.cgi?id=505611

import warnings 
warnings.filterwarnings('ignore', '.*the sets module is deprecated.*', 
         DeprecationWarning, 'MySQLdb') 
import MySQLdb 
+0

+1 grazie! questo è stato utile !! –

risposta

6

Fate questo prima che il modulo mysql è importato

import warnings 
warnings.filterwarnings(action="ignore", message='the sets module is deprecated') 
import sets 
+2

Si prega di ignorare DeprecationWarnings dal modulo MySQLdb, oppure si potrebbero ignorare gli usi del modulo sets che si * controlla *, o altri tipi di avvertimenti con testo corrispondente. –

0

Tutto ciò significa il modulo set (più precisamente la parte ImmutableSet) è deprecato, e dovresti usare la sua sostituzione, impostare. Il set è integrato, quindi non è necessario importarlo.

Se è necessario un set immutabile, è necessario utilizzare frozenset().

+0

Sfortunatamente non è il suo codice che sta usando il modulo set. –

+0

ciao Dominic .. grazie per la risposta. È la libreria mysqldb, quindi non voglio cambiare la loro base di codice a meno che non sia necessario. qualche idea? – James

1

È possibile ignorare l'avviso utilizzando il modulo warnings o l'argomento -W in Python. Non ignorare tutto DeprecationWarnings, però, solo quelli di MySQLdb :)

+0

grazie Thomas, come potrei ignorare quelli solo da mysqldb? – James

+0

Si passa il modulo corretto come argomento 'module' al filtro degli avvisi. –

Problemi correlati