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'
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
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.
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.
@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.
@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.
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.
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.
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.
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.
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.
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.