Python - can't import Set from sets (“no modul

2019-02-11 21:00发布

问题:

I'm trying to learn python and I was trying to write something simple. I am developing under Pydev (Eclipse) using OS X 10.8. I installed python 3.2 using the 64bits .dmg installer.

I configured the Python interpreter successfully (or I think so, as I actually can create a "hello world" project and run it). But for some reason, when I try to import Set (from sets import Set) I get this error:

    from sets import Set;
ImportError: No module named sets

I have tested it on command line too, and gives me the same error.

Then I have looked at the lib folder from my python3 directory (under /Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/) and it's missing sets.py file!!! The original 2.7 version does have it at /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/

I have also tried to copy the 2.7 sets.py to the 3.2, but it neither works... Please, do you know what have I to do?

回答1:

You don't need the sets module anymore. set is a built-in class in Python 3 and can be used without import.

my_set = set()


回答2:

In every recent python version sets are builtin as set and Python 3 got rid of the deprecated sets module altogether.

If you wanted to ensure that the code also works with ancient versions you could do something like this though:

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

If you need to run old code and don't want to change it (bad!):

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


回答3:

you don't need to use

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

above is Deprecated since version 2.6:

you can use below code above 2.6 version

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