2010-03-14 72 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