32 votes

Le module 'matplotlib' n'a pas d'attribut 'verbose'

Je peux exécuter mon programme dans le terminal, mais lorsque je l'exécute directement avec PyCharm, cela donne

AttributeError: le module 'matplotlib' n'a pas d'attribut 'verbose'

entrer la description de l'image ici

3 votes

Vous devriez copier et coller le code et le message d'erreur dans la question, plutôt que de télécharger une capture d'écran

2 votes

Je rencontre exactement le même problème. Ça fonctionnait bien dans la version Community de PyCharm, mais lorsque j'ai mis à jour vers PyCharm Professional, j'ai obtenu la même erreur. Dès que mon code essaie d'"importer matplotlib.pyplot as plt"

2 votes

Pouvez-vous s'il vous plaît modifier la question pour inclure le code et le message d'erreur sous forme de texte. Seulement alors les gens pourront le trouver via la recherche.

37voto

Tom Johnson Points 842

Je pense avoir trouvé la réponse. J'avais le même problème. Dans PyCharm Professional 2017.3, allez dans Fichier | Paramètres | Outils | Scientifique Python. Il y a une option là pour "Afficher les graphiques dans la fenêtre d'outils". Décochez cette option. Ensuite, cela devrait fonctionner correctement. Cela a quelque chose à voir avec PyCharm qui essaie de vous aider en vous permettant d'interagir avec vos graphiques - comme indiqué dans cette discussion sur le problème. https://youtrack.jetbrains.com/issue/PY-26652

4 votes

Alors que cette solution temporaire aborde techniquement cette exception spécifique, le problème sous-jacent est matplotlib lui-même - non PyCharm. Matplotlib 2.2.0 a accidentellement cassé la compatibilité ascendante d'une manière douloureuse et terrifiante.

0 votes

C'était une super trouvaille. Comment as-tu trouvé cela ?

12voto

Salman Points 590

Essayez d'installer une ancienne version de matplotlib comme la 2.1.0 plutôt que la v 2.2.0

utilisez :

pip uninstall matplotlib
pip install matplotlib==2.1.0

0 votes

Pourquoi cela serait-il une solution? S'il y a un problème avec la dernière version de matplotlib, il serait bon de savoir ce que c'est, afin de pouvoir le corriger.

3 votes

@ImportanceOfBeingErnest Ceci est la solution. Pourquoi ? Parce que la version stable la plus récente de matplotlib a significativement cassé la compatibilité ascendante en supprimant l'ancienne API publique matplotlib.verbose. Cela signifie en effet que toutes les applications dépendantes (comme PyCharm) nécessitant matplotlib en tant que dépendance tierce doivent maintenant mettre matplotlib 2.2.0 sur liste noire en espérant que leur prochaine version stable rétablira cette rupture évidente et effrayante. En d'autres termes, ils ont tout gâché. Vraiment.

0 votes

@CecilCurry Je suis tout à fait d'accord. Mon commentaire invitait à étendre la réponse en expliquant pourquoi c'est une solution. Comme cela n'a pas été fait, j'ai fourni moi-même une réponse.

6voto

Ceci est une erreur du côté de matplotlib, verbose a été retiré involontairement dans matplotlib 2.2.0. Voir ce problème.

Cela a été corrigé du côté de matplotlib dans la version 2.2.2. (Version ici)

Si la mise à jour n'est pas une option, une autre option moins idéale pourrait être de localiser le fichier __init__.py à l'intérieur du dossier matplotlib, et d'ajouter la ligne

verbose = Verbose()

après la classe Verbose() - cela devrait être vers la ligne 384 dans la version actuelle.

0 votes

Pour ceux qui rencontrent des problèmes similaires dans un futur proche, veuillez noter que l'ensemble de l'API matplotlib.Verbose a été obsolète et devrait être supprimé dans les six prochains mois. Par conséquent, revenir à une version plus ancienne de matplotlib est probablement la solution la plus stable et la plus sûre.

0 votes

Oui, en fait, la solution de cette réponse (réajout verbose à la source) causera également un avertissement à chaque importation de matplotlib, donc ce n'est certainement pas une solution à long terme.

0 votes

Confirmé - plt est à la hauteur pour cela et a ajouté cette ligne pour les versions 2.1.2 dans les versions py2.7 py3.6.4.

0voto

Yusuf folahan Points 43

Si quelqu'un rencontre un problème tel que : le module matplotlib n'a pas d'attribut 'artist'. Essayez cette méthode ci-dessous en supprimant matplotlib

pip uninstall matplotlib

puis réinstallez-le à nouveau, ça a fonctionné pour moi

pip install matplotlib==3.0.0

0voto

Jordan He Points 120

Dans la version la plus récente de PyCharm (Profession 2020.2), ce problème est corrigé. Vous pouvez utiliser matplotlib 2.2.0+ et profiter de la fonctionnalité "Afficher les graphiques dans la fenêtre d'outil" en même temps.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X