J'essaie d'exécuter une application qui s'exécutait auparavant. Il fonctionnait à la fois sur Ubuntu et Windows 7. J'ai maintenant une machine Windows 10 et le code échoue. C'est peut-être parce que je suis sur python 3.5 maintenant, bien que je ne puisse franchement pas me souvenir de ce que j'étais sur les autres machines (qui ne sont plus disponibles).

Les lignes clés sont:

import matplotlib
matplotlib.use("TkAgg")
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2TkAgg

Qui a été retiré de divers endroits il y a quelque temps. Cependant, maintenant, lorsque je l'exécute, il génère une erreur:

Traceback (most recent call last):
  File "C:\....py", line 17, in <module>
    from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2TkAgg
  File "C:\Users\...\AppData\Local\Programs\Python\Python35-32\lib\site-packages\matplotlib\backends\backend_tkagg.py", line 13, in <module>
    import matplotlib.backends.tkagg as tkagg
  File "C:\Users\g...\AppData\Local\Programs\Python\Python35-32\lib\site-packages\matplotlib\backends\tkagg.py", line 9, in <module>
    from matplotlib.backends import _tkagg
ImportError: DLL load failed: The specified module could not be found.

Dans une session interactive, il semble que ce soit la troisième ligne qui échoue:

>>> import matplotlib
>>> matplotlib.use("TkAgg")
>>> from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2TkAgg
Traceback (most recent call last):
  File "<pyshell#4>", line 1, in <module>
    from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2TkAgg
  File "C:\Users\...\AppData\Local\Programs\Python\Python35-32\lib\site-packages\matplotlib\backends\backend_tkagg.py", line 13, in <module>
    import matplotlib.backends.tkagg as tkagg
  File "C:\Users\...\AppData\Local\Programs\Python\Python35-32\lib\site-packages\matplotlib\backends\tkagg.py", line 9, in <module>
    from matplotlib.backends import _tkagg
ImportError: DLL load failed: The specified module could not be found.

J'ai essayé

pip uninstall matplotlib
pip install matplotlib

Dans l'invite de commande, mais l'erreur est restée.

Il semble qu'il puisse y avoir un paquet python-matplotlib-tk, mais je ne suis pas sûr de ce que c'est.

Dois-je revenir à python 3.4, ou existe-t-il une solution à cela? Est-ce un problème connu?


En réponse au commentaire ci-dessous sur l'installation de matplotlib:

C:\>pip install matplotlib
Collecting matplotlib
  Downloading matplotlib-1.5.1-cp35-none-win32.whl (6.2MB)
    100% |################################| 6.2MB 67kB/s
Requirement already satisfied (use --upgrade to upgrade): numpy>=1.6 in c:\users\...\appdata\local\programs\python\python35-32\lib\site-packages (from matplotlib)
Requirement already satisfied (use --upgrade to upgrade): pytz in c:\users\...\appdata\local\programs\python\python35-32\lib\site-packages (from matplotlib)
Requirement already satisfied (use --upgrade to upgrade): python-dateutil in c:\users\...\appdata\local\programs\python\python35-32\lib\site-packages (from matplotlib)
Requirement already satisfied (use --upgrade to upgrade): cycler in c:\users\...\appdata\local\programs\python\python35-32\lib\site-packages (from matplotlib)
Requirement already satisfied (use --upgrade to upgrade): pyparsing!=2.0.4,>=1.5.6 in c:\users\...\appdata\local\programs\python\python35-32\lib\site-packages (from matplotlib)
Requirement already satisfied (use --upgrade to upgrade): six>=1.5 in c:\users\...\appdata\local\programs\python\python35-32\lib\site-packages (from python-dateutil->matplotlib)
Installing collected packages: matplotlib
Successfully installed matplotlib-1.5.1
2
Dr Xorile 4 mars 2016 à 23:52

4 réponses

Meilleure réponse

J'ai eu le même problème

J'ai lu les documents dans matplotlib

Pour Python 3.5, le redistribuable Visual C ++ pour Visual Studio 2015 doit être installé. Si Python 2.7 à 3.4 n'est pas installé pour tous les utilisateurs (pas par défaut), Microsoft Visual C ++ 2008 (64 bits ou 32 bits pour Python 2.7 à 3.2) ou Microsoft Visual C ++ 2010 (64 bits ou 32 bits pour Python 3.3 et 3.4) les packages redistribuables doivent être installés.

Et j'ai installé le redistribuable Visual C ++ pour Visual Studio 2015 Cela a résolu le problème

4
SmartManoj 9 oct. 2016 à 17:04

Voici votre problème:

ImportError: échec du chargement de la DLL: le module spécifié est introuvable.

Vous pouvez essayer d'ouvrir _tkagg.pyd dans un logiciel comme Dependency Walker et rechercher les erreurs.

Il est également possible que _tkagg.pyd ait été construit avec une version incompatible du Python que vous utilisez

0
Dimitri Merejkowsky 4 mars 2016 à 21:00

J'ai également trouvé un moyen d'importer les packages, en utilisant 'import matplotlib as mpl «:

       import matplotlib as mpl
       mpl.use("TkAgg")
       from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2TkAgg

Cela fonctionne très bien pour moi, j'espère que cela fonctionne aussi pour les autres (:

1
Dorothée 19 juin 2017 à 08:34

Pour ceux qui ont récemment rencontré ce problème, j'ai trouvé que la solution redistribuable ne fonctionnait pas, car j'avais des redistribuables 32 bits et 64 bits déjà installés.

La solution que j'ai trouvée était de remplacer NavigationToolbar2TkAgg par NavigationToolbar2Tk.

1
Joseph Auman 7 sept. 2019 à 12:39