【问题标题】:Python3.5 backend_tkagg no longer available?Python3.5 backend_tkagg 不再可用?
【发布时间】:2016-06-18 18:20:34
【问题描述】:

我正在尝试运行以前运行的应用程序。它曾经在 Ubuntu 和 Windows 7 上运行。我现在有一台 Windows 10 机器,但代码失败了。可能是因为我现在使用的是 python 3.5,但坦率地说,我不记得我在其他机器上使用了什么(这些机器不再可用)。

重点是:

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

前段时间已从各个地方取出。但是,现在当我运行它时,它会抛出一个错误:

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.

在交互式会话中,似乎是第三行失败了:

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

我试过了

pip uninstall matplotlib
pip install matplotlib

在命令提示符下,但错误仍然存​​在。

好像有python-matplotlib-tk包,但我不确定这是什么。

我应该退回到 python 3.4,还是有解决方案?这是一个已知问题吗?


针对以下关于安装 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

【问题讨论】:

  • 这里是一个在 python 3.4 中使用这种方法的教程的链接:here
  • 你是如何安装 matplotlib 的?都编译正确了吗?
  • @MattDMo,是的。请参阅问题中的点子报告
  • 哦,对了,我忘了 PyPI 上有 Windows 轮子。下一个问题:你能成功import tkinter吗?
  • 我将尝试回到 python 3.4。看来我还需要 Microsoft Visual C++ 10.0,它(据我所知)是 Visual Studio Community 2015。我现在正在安装它。其他人说尝试从sourceforge 安装numpy,我可能会尝试下一个。

标签: python matplotlib tkinter


【解决方案1】:

我遇到了同样的问题

我阅读了matplotlib 中的文档

对于 Python 3.5,Visual C++ Redistributable for Visual Studio 2015 需要安装。如果没有安装 Python 2.7 到 3.4 所有用户(非默认)、Microsoft Visual C++ 2008(64 位或 Python 2.7 到 3.2 的 32 位)或 Microsoft Visual C++ 2010(64 位或 Python 3.3 和 3.4 的 32 位)可再发行包需要 已安装。

我安装了the Visual C++ Redistributable for Visual Studio 2015 解决了问题

【讨论】:

  • 为我解决了这个问题。你是怎么发现的?
  • 是的!谢谢!我在 tkinter GUI 上关注 pythonprogramming.net 教程并遇到了这个确切的问题。
  • 我应该为 Python 3.7.1 安装哪个 Redistributable?
  • @CaTx wiki.python.org/moin/…compiler_to_use_with_a_specific_Python_version.3F
【解决方案2】:

对于那些最近遇到这个问题的人,我发现可再发行解决方案不起作用,因为我已经安装了 32 位和 64 位可再发行产品。

我找到的解决方案是将 NavigationToolbar2TkAgg 替换为 NavigationToolbar2Tk。

【讨论】:

  • 这也适用于我,在带有 Python 3.7.1 的 Windows 10 上。谢谢!!
【解决方案3】:

我还有found 一种导入包的方法,使用'import matplotlib as mpl':

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

这对我来说很好,希望它也适用于其他人(:

【讨论】:

  • 没有。这对我不起作用。使用 Python 3.7.4 在 Windows 10 上出现同样的错误
【解决方案4】:

这是你的问题:

ImportError: DLL load failed: 找不到指定的模块。

您可以尝试在Dependency Walker 之类的软件中打开 _tkagg.pyd 并查找错误。

_tkagg.pyd 也有可能是使用您正在使用的 Python 的不兼容版本构建的

【讨论】:

  • 好的,我已经下载并安装了 Dependency Walker。我在哪里可以找到 _tkagg.pyd?
  • 此目录中的某个位置:C:\Users\...\AppData\Local\Programs\Python\Python35-32\lib\site-packages\matplotlib\backends\ 你确定你是使用 Python3.5 的 32 位版本?
  • 好的,所以在那个目录中没有 _tkagg.pyd 文件。有一个名为 _tkadd.cp35-win32.pyd 的文件。我在上面运行了 Dependency Walker,它确实抛出了一个依赖错误
  • API-MS-WIN-...。其中很多都缺少 DLL。
  • 可以发一张完整的截图吗?
猜你喜欢
  • 2014-10-08
  • 1970-01-01
  • 2020-04-25
  • 1970-01-01
  • 1970-01-01
  • 2015-09-22
  • 1970-01-01
  • 2022-12-30
相关资源
最近更新 更多