9

我遇到了一个非常奇怪的问题。我正在尝试在集合模块中使用计数器功能。但是,我不断收到相同的错误消息

AttributeError: 'module' object has no attribute 'Counter'

我之前尝试过使用它并且效果很好,但是现在由于某种原因,当我导入“集合”模块时,它的属性数量非常有限。

我努力了:

import collections   # when calling Counter I would then use collections.Counter()
import collections as collect # collect.Counter()

对于这两个我不断收到属性错误。

我也试过

from collections import Counter

在这种情况下,我得到:

ImportError: cannot import name Counter

这些都在 ipython 界面和脚本中进行了测试(不导入其他任何东西,只是集合)。

有任何想法吗?

4

4 回答 4

26

该类Counter被添加到 Python 2.7 中的模块中。您很可能使用 Python 2.6 或更早版本。从collections.Counter()文档中:

2.7 版中的新功能。

在 python 2.5 或 2.6 上,请改用这个 backport

于 2012-11-09T15:39:39.677 回答
2

安装时遇到同样的问题pandas

原因Counter仅支持 inpython2.7和更高版本,在早期版本中不可用 -Counter类被添加到collections包中Python 2.7


解决方案 1:正如 Martin Pieters 所述 - 使用后向端口。

添加counter.py/lib64/python2.6/- 这collections.py./lib64/python2.6/collections.py 补丁所在的位置collections.py

from counter import Counter

解决方案2:使用backport_collections包。下一个补丁(导入语句)你在我的例子中遇到异常的包,即 pandas:

from backport_collections import Counter
于 2016-08-16T08:15:29.117 回答
1

您可能正在使用旧版本的 Python,Counter该类,如文档中所述,是在 2.7 版中添加的。

于 2012-11-09T15:39:50.087 回答
0

您应该使用新版本的 python AS python 3。然后您可以使用此模块。然后导入,

import collections
from collections import counter
于 2020-10-30T08:11:38.860 回答