2010-03-14 56 views
1

當我使用MySQLdb的得到這個消息:預警蟒蛇與MySQLdb的

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

我嘗試用

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

過濾警告,但,我沒有得到改變。
有什麼建議嗎?
非常感謝。

回答

4

python documentation:您可以過濾你的警告這種方式,因此,如果其他的警告是由你的代碼的其他部分造成的,仍然會有顯示:

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

而是由Alex馬爾泰利說,最好的解決方案是更新MySQLdb,以便它不使用已棄用的模塊。

1

你使用的是什麼版本的MySQLdb?我認爲目前的(1.2.3c1)應該修復它,參見this bug(標記爲截至2008年10月的1.2分支)。

+0

我有__version__ =「1.2.2」,也許這是問題所在。 – JuanPablo 2010-03-14 01:43:14

+0

@juanpablo,也許,雖然它很奇怪,因爲你有最後一個完整版本(「c1」意思是「發佈候選版本1」用於1.2.3),1.2分支應該在1年前解決了這個問題。我指出的錯誤報告包括對相關.py文件的簡單修復,也許你想自己完成這些小編輯並修復問題(這比僅僅抑制警告更好!),基本上你需要跳過導入和將內置的'frozenset'綁定到'ImmutableSet'舊的,過時的,棄用的名字! – 2010-03-14 02:42:03