2010-02-11 29 views
6

我每次運行使用MySQLdb的Python腳本時間目前得到警告:Python的錯誤 - 套模塊已過時

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

我寧願不要用自己的lib如果可能的混亂。我在Ubuntu服務器上。任何人都知道解決這個警告信息的簡單方法嗎?

由於

UPDATE: 固定它基於下面的建議和該鏈接: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感謝!這是有幫助的! –

回答

6

mysql的模塊之前做,這是進口

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

請忽略來自MySQLdb模塊的DeprecationWarnings,或者您可能會忽略使用您的* do *控件的sets模塊或其他類型的具有匹配文本的警告。 –

0

它的意思是在集模塊(更具體地是immutableset一部分)已過時,你應該使用它的替換,設置。集內置,所以不需要導入。

如果您需要一個不可變集合,frozenset()應該可以工作。

+0

不幸的是,這不是他的代碼使用sets模塊。 –

+0

嗨多米尼克..感謝您的答覆。它的mysqldb庫,所以我不想去改變他們的代碼庫,除非我必須。有任何想法嗎? – James

1

您可以使用warnings模塊或參數-W來忽略警告。不要忽略所有DeprecationWarnings,不過,剛剛從MySQLdb的那些:)

+0

謝謝托馬斯,我怎麼會忽略只是從mysqldb的? – James

+0

您將正確的模塊作爲模塊參數傳遞給警告過濾器。 –