Python: no se pueden importar conjuntos desde conjuntos (“ningún módulo llamado conjuntos”)

Estoy tratando de aprender python y estaba tratando de escribir algo simple. Estoy desarrollando bajo Pydev (Eclipse) usando OS X 10.8. Instalé Python 3.2 usando el instalador .dmg de 64 bits.

Configuré el intérprete de Python con éxito (o creo que sí, ya que en realidad puedo crear un proyecto “hola mundo” y ejecutarlo). Pero por alguna razón, cuando trato de importar Set ( from sets import Set ) recibo este error:

  from sets import Set; ImportError: No module named sets 

Lo he probado en la línea de comandos también, y me da el mismo error.

Luego he mirado la carpeta lib desde mi directorio de python3 (en /Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/ ) ¡y falta el archivo sets.py! La versión 2.7 original lo tiene en /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/

También he intentado copiar los 2.7 sets.py al 3.2, pero tampoco funciona … Por favor, ¿sabes qué tengo que hacer?

Ya no necesitas el modulo de sets . set es una clase incorporada en Python 3 y se puede usar sin importar.

 my_set = set() 

En cada versión reciente de Python, los conjuntos están integrados como set y Python 3 se deshizo del módulo de sets obsoletos por completo.

Si quisiera asegurarse de que el código también funciona con versiones antiguas, podría hacer algo como esto:

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

Si necesita ejecutar el código antiguo y no quiere cambiarlo ( ¡mal! ):

 try: from sets import Set except ImportError: Set = set 

no necesitas usar

 from sets import Set engineers = Set(['John', 'Jane', 'Jack', 'Janice']) 

Lo anterior está obsoleto desde la versión 2.6 :

Puedes usar el código de abajo sobre la versión 2.6

 engineers = set(['John', 'Jane', 'Jack', 'Janice']) programmers = set(['Jack', 'Sam', 'Susan', 'Janice']) managers = set(['Jane', 'Jack', 'Susan', 'Zack']) employees = engineers | programmers | managers print(employees)