簡體   English   中英

Python3.5 backend_tkagg 不再可用?

[英]Python3.5 backend_tkagg no longer available?

我正在嘗試運行之前運行的應用程序。 它曾經在 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

我有同樣的問題

我閱讀了matplotlib 中的文檔

對於 Python 3.5,需要安裝 Visual C++ Redistributable for Visual Studio 2015。 如果沒有為所有用戶安裝 Python 2.7 到 3.4(不是默認設置),Microsoft Visual C++ 2008(64 位或 32 位 Python 2.7 到 3.2)或 Microsoft Visual C++ 2010(64 位或 32 位 Python 3.3 和3.4) 需要安裝可再發行包。

為 Visual Studio 2015安裝 了 Visual C++ Redistributable它解決了這個問題

對於最近遇到這個問題的人,我發現可再發行解決方案不起作用,因為我已經安裝了 32 位和 64 位可再發行軟件。

我找到的解決方案是用 NavigationToolbar2Tk 替換 NavigationToolbar2TkAgg。

我還找到了一種導入包的方法,使用“import matplotlib as mpl”:

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

這對我來說很好用,希望它也適用於其他人(:

這是你的問題:

導入錯誤:DLL 加載失敗:找不到指定的模塊。

您可以嘗試在Dependency Walker等軟件中打開 _tkagg.pyd 並查找錯誤。

_tkagg.pyd 也可能是使用不兼容的 Python 版本構建的

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM