9

私は本当に奇妙な問題に遭遇しました。コレクション モジュールで Counter 関数を使用しようとしています。ただし、同じエラーメッセージが表示され続けます

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 では、代わりにこのバックポートを使用してください。

于 2012-11-09T15:39:39.677 に答える
2

インストール中に同じ問題に遭遇しましたpandas

原因:Counterは でのみサポートされてpython2.7おり、以前のバージョンでは使用できません -Counterクラスはcollectionsでパッケージに追加されましたPython 2.7


解決策 1 : Martin Pieters が述べたように、バックポートを使用します。

追加- これは、次のcounter.pyパッチ がある場所です。/lib64/python2.6/collections.py./lib64/python2.6/collections.pycollections.py

from counter import Counter

解決策 2 :backport_collectionsパッケージを使用します。次のパッチ (インポート ステートメント) は、私の場合、つまり pandas で例外が発生しているパッケージです。

from backport_collections import Counter
于 2016-08-16T08:15:29.117 に答える
1

ドキュメントに記載されているように、バージョン 2.7 で追加されたCounterクラスである古いバージョンの Python を使用している可能性があります。

于 2012-11-09T15:39:50.087 に答える