设置模块已弃用警告

时间:2010-01-11 08:25:13

标签: python

当我运行我的python脚本时,我收到以下警告

DeprecationWarning: the sets module is deprecated

我该如何解决这个问题?

5 个答案:

答案 0 :(得分:35)

停止使用sets模块,或切换到不推荐使用的旧版python。

根据pep-004,自{v2.6}起,sets已弃用,取而代之的是内置set and frozenset types

答案 1 :(得分:25)

历史:

在Python 2.3之前:没有设置功能
Python 2.3:sets模块到达了 Python 2.4:引入了setfrozenset内置函数 Python 2.6:sets模块已弃用

您应该将代码更改为使用set而不是sets.Set

如果您仍希望能够支持使用Python 2.3,可以在脚本开头执行此操作:

try:
   set
except NameError:
   from sets import Set as set

答案 2 :(得分:5)

如果你想修复它,James绝对有正确的答案,但是如果你想关闭弃用警告,你可以像这样运行python:

$ python -Wignore::DeprecationWarning 
Python 2.6.2 (r262:71600, Sep 20 2009, 20:47:22) 
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import sets
>>> 

(来自:http://puzzling.org/logs/thoughts/2009/May/3/python26-deprecation-warning

您也可以通过编程方式忽略它:

import warnings
warnings.simplefilter("ignore", DeprecationWarning)

答案 3 :(得分:4)

使用内置set代替导入和使用sets模块。

来自documentation

  

不推荐使用sets模块;   最好使用内置套装   和冻结类型。

答案 4 :(得分:2)

您无需导入sets模块即可使用它们,它们位于内置命名空间中。