2010-01-11 11 views
25

obsoleto Cuando ejecuto mi script en Python, me sale el siguiente mensaje de advertenciamódulo de conjuntos de advertencia

DeprecationWarning: the sets module is deprecated 

¿cómo puedo solucionar esto?

+0

¿Qué versión de Python? –

+0

Python versión 2.6.4 – Dave

Respuesta

33

Deje de usar el módulo sets o cambie a una versión anterior de python donde no esté en desuso.

De acuerdo con pep-004, sets está en desuso a partir de v2.6, reemplazado por el set and frozenset types incorporado.

+4

+1: corrige la advertencia solucionando el problema que causa la advertencia. Parece tan simple. –

+1

Parece simple si sabes que hay un reemplazo incorporado. ¿Por qué la advertencia no dice eso? – GreenAsJade

2

No necesita importar el módulo sets para usarlos, están en el espacio de nombres incorporado.

4

Usar la Builting set en lugar de conjuntos importadores módulo

De documentation:

El módulo de juegos ya no se utiliza; es mejor usar el conjunto integrado y los tipos frozenset.

25

Historia:

Antes de Python 2.3: ninguna funcionalidad conjunto
Python 2.3: Módulo de sets llegó
Python 2.4: set y frozenset muebles empotrados introducido
Python 2.6: sets módulo obsoleta

Debe cambiar su código para usar set en lugar de sets.Set.

Si aún desea ser capaz de soportar el uso de Python 2.3, se puede hacer esto en el inicio de la secuencia de comandos:

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

Si desea solucionarlo James definitivamente tiene la respuesta correcta, pero en caso de que quiera sólo tiene que desactivar las advertencias de desaprobación, puede ejecutar pitón de este modo:

$ 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 
>>> 

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

también puede ignorarlo mediante programación:

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