Compteur dans les Collections module Python
Je l'ai trouver vraiment un problème bizarre. Je suis en train d'utiliser la fonction de Compteur dans les collections du module. Cependant, je reçois le même message d'erreur
AttributeError: 'module' object has no attribute 'Counter'
J'ai essayé de l'utiliser avant et il a bien fonctionné, mais maintenant, pour une raison quelconque, quand je l'importation des "collections" module qu'il a un nombre très limité d'attributs.
J'ai essayé:
import collections # when calling Counter I would then use collections.Counter()
import collections as collect # collect.Counter()
Pour les deux de ceux que je reçois Attribut Erreur.
J'ai aussi essayé de
from collections import Counter
Et dans ce cas j'ai:
ImportError: cannot import name Counter
Ce sont tous testés à la fois dans ipython interface et par le biais d'un script (pas d'importation de rien, juste des collections).
Des idées?
En général, lorsque vous traitez avec ce genre de comportement inattendu, c'est souvent une bonne idée de vous assurer que le module est celui que vous pensez qu'il est. Donc essayez d'importer des collections;print(collections) et assurez-vous qu'il est le standard de la version de bibliothèque. J'ai vu ce genre de problème cultures lorsque le python path obtient foiré ou une bibliothèque est ajouté à l'python chemin qui a le même nom qu'une bibliothèque standard.
OriginalL'auteur branwen85 | 2012-11-09
Vous devez vous connecter pour publier un commentaire.
La
Counter
classe a été ajouté pour le module en Python 2.7. Vous êtes le plus susceptible à l'aide de Python 2.6 ou plus. À partir de lacollections.Counter()
de la documentation:Sur python 2.5 ou 2.6, utilisez cette backport à la place.
'module' object has no attribute 'Counter'
:print(collections.Counter({'a':2, 'b':3, 'c':1}))
vous aurez besoin d'3.1 ou plus récent. 3.0 est vraiment antique et I très, très fortement vous prions de ne pas l'utiliser. Le Python 3 de la série a commencé à vraiment devenir grand à 3,4 et les plus récents. 3.0 a quelques sérieux problèmes de performances par exemple.
Je suis débutant en python et est d'obtenir mes mains dans le cambouis sur les différentes versions. Je ne sais pas quel était le problème sur un PC windows (à l'aide de py 3.0), il n'a pas de travail, mais il en est de même de travailler sur mon autre système de windows (sur les 2,7 et 3,6 fois). Je vais vérifier sur py 3.6 sur mon ancien PC.
OriginalL'auteur Martijn Pieters
Suis tombé sur le même problème lors de l'installation de
pandas
.Cause:
Counter
est pris en charge uniquement danspython2.7
et plus haut, et n'est pas disponible dans les versions antérieures -Counter
de classe ont été ajoutés danscollections
paquet dansPython 2.7
.Solution 1: Comme l'a déclaré Martin Pieters - utiliser le backport.
Ajouter
counter.py
à/lib64/python2.6/
- c'est là que lecollections.py
est./lib64/python2.6/collections.py
Patch
collections.py
avec:Solution 2: utiliser le
backport_collections
paquet.Prochain patch (l'instruction d'importation) le paquet que vous obtenez exception, à savoir les pandas dans mon cas:
OriginalL'auteur Nabeel Ahmed
Vous êtes probablement en utilisant une ancienne version de Python, la
Counter
classe, comme indiqué dans le la documentation a été ajouté dans la version 2.7.OriginalL'auteur Óscar López