Counter in Collections module Python

branwen85 picture branwen85 · Nov 9, 2012 · Viewed 26.9k times · Source

I've come across a really weird problem. I'm trying to use Counter function in collections module. However, I keep getting the same error message

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

I have tried using it before and it worked fine, but now for some reason when I import "collections" module it has a very limited number of attributes.

I have tried:

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

For both of those I keep getting Attribute Error.

I have also tried

from collections import Counter

And in this case I got:

ImportError: cannot import name Counter

These are all tested both in ipython interface and through a script (not importing anything else, just the collections).

Any ideas?

Answer

Martijn Pieters picture Martijn Pieters · Nov 9, 2012

The Counter class was added to the module in Python 2.7. You are most likely using Python 2.6 or older. From the collections.Counter() documentation:

New in version 2.7.

On python 2.5 or 2.6, use this backport instead.