Python - 无法从集合中导入Set("没有名为sets的模块")

Ric*_*mpo 20 python import module

我正在尝试学习python而我正在尝试编写一些简单的东西.我正在使用OS X 10.8在Pydev(Eclipse)下开发.我使用64位.dmg安装程序安装了python 3.2.

我成功配置了Python解释器(或者我认为是这样,因为我实际上可以创建一个"hello world"项目并运行它).但由于某种原因,当我尝试导入Set(from sets import Set)时,我收到此错误:

    from sets import Set;
ImportError: No module named sets
Run Code Online (Sandbox Code Playgroud)

我也在命令行上测试了它,并给了我同样的错误.

然后我查看了python3目录下的lib文件夹(下/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/),它缺少sets.py文件!最初的2.7版本确实有/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/

我也尝试将2.7 sets.py复制到3.2,但它既不起作用...请问,你知道我该怎么做吗?

Mic*_*rer 39

你不再需要这个sets模块了.set是Python 3中的内置类,可以在不导入的情况下使用.

my_set = set()
Run Code Online (Sandbox Code Playgroud)


Thi*_*ter 18

在最近的每个python版本中,内置的版本都是集成的,set并且Python 3 sets完全摆脱了已弃用的模块.

如果你想确保代码也适用于古代版本,你可以做这样的事情:

try:
    set
except NameError:
    from sets import Set as set
Run Code Online (Sandbox Code Playgroud)

如果你需要运行旧代码而不想改变它(糟糕!):

try:
    from sets import Set
except ImportError:
    Set = set
Run Code Online (Sandbox Code Playgroud)

  • 我会有点惊讶地发现依赖于`sets`模块的旧代码可以在没有它的python版本(py3)上工作,除了添加导入行之外没有其他更改.无论如何; 很好的答案,+ 1! (2认同)