2016-03-04 117 views
0

我試圖運行之前運行的應用程序。它曾經在Ubuntu和Windows 7上運行。我現在有一臺Windows 10機器,代碼失敗。這可能是因爲我現在在python 3.5上,儘管我坦白地記不起其他機器上的內容(這些機器不再可用)。Python3.5 backend_tkagg不再可用?

的主要線路有:

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 
+0

下面是一個教程的鏈接,使用此方法python 3.4:[here](https://pythonprogramming.net/how-to-embed-matplotlib-graph-tkinter-gui/) –

+0

你是怎麼安裝matplotlib的?這一切是否正確編譯? – MattDMo

+0

@MattDMo,是的。請參閱問題 –

回答

0

這是你的問題:

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

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

這也有可能是_tkagg.pyd與Python的版本不兼容使用的是

+0

好吧,我已經下載並安裝了Dependency Walker。我在哪裏可以找到_tkagg.pyd? –

+0

此目錄中的某處:C:\ Users \ ... \ AppData \ Local \ Programs \ Python \ Python35-32 \ lib \ site-packages \ matplotlib \ backends \您是否確定您使用的是32位版本的Python3。 5? –

+0

好的,所以在那個目錄中沒有_tkagg.pyd文件。有一個名爲_tkadd.cp35-win32.pyd的文件。我運行了Dependency Walker,它確實拋出了一個依賴錯誤 –

3

建我有同樣的問題

matplotlib

For Python 3.5 the Visual C++ Redistributable for Visual Studio 2015 needs to be installed. In case Python 2.7 to 3.4 are not installed for all users (not the default), the Microsoft Visual C++ 2008 (64 bit or 32 bit for Python 2.7 to 3.2) or Microsoft Visual C++ 2010 (64 bit or 32 bit for Python 3.3 and 3.4) redistributable packages need to be installed.

閱讀文檔和我安裝了the Visual C++ Redistributable for Visual Studio 2015 它解決了這個問題

+1

爲我修好了。你如何發現它? – CaTx

+1

是的!謝謝!我正在關注tkinter GUI的[pythonprogramming.net](https://pythonprogramming.net)教程,並遇到了這個問題。 –

2

我也是found辦法中導入數據包,使用「導入matplotlib爲MPL」:

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

這工作對我很好,希望它爲他人太(: