2014-10-15 29 views
9

Tôi đã gặp sự cố khi sử dụng matplotlib sau khi cập nhật Windows. Tôi đang chạy Windows 7 Service Pack 1 32 bit và tôi đã cài đặt Python và matplotlib như một phần của Python (x, y) -2.7.6.1. Vấn đề xuất hiện liên quan đến FreeType, như việc nhập khẩu không thành công trên ft2font như trong stack trace dưới đây:Matplotlib trên Windows - sự phụ thuộc chưa được giải quyết

In [1]: import matplotlib 

In [2]: matplotlib.use('agg') 

In [3]: import matplotlib.pyplot as plt 
--------------------------------------------------------------------------- 
ImportError        Traceback (most recent call last) 
<ipython-input-3-eff513f636fd> in <module>() 
----> 1 import matplotlib.pyplot as plt 

C:\Python27\lib\site-packages\matplotlib\pyplot.py in <module>() 
    22 
    23 import matplotlib 
---> 24 import matplotlib.colorbar 
    25 from matplotlib import _pylab_helpers, interactive 
    26 from matplotlib.cbook import dedent, silent_list, is_string_like, is_numlike 

C:\Python27\lib\site-packages\matplotlib\colorbar.py in <module>() 
    27 import matplotlib.artist as martist 
    28 import matplotlib.cbook as cbook 
---> 29 import matplotlib.collections as collections 
    30 import matplotlib.colors as colors 
    31 import matplotlib.contour as contour 

C:\Python27\lib\site-packages\matplotlib\collections.py in <module>() 
    21 import matplotlib.artist as artist 
    22 from matplotlib.artist import allow_rasterization 
---> 23 import matplotlib.backend_bases as backend_bases 
    24 import matplotlib.path as mpath 
    25 from matplotlib import _path 

C:\Python27\lib\site-packages\matplotlib\backend_bases.py in <module>() 
    48 
    49 import matplotlib.tight_bbox as tight_bbox 
---> 50 import matplotlib.textpath as textpath 
    51 from matplotlib.path import Path 
    52 from matplotlib.cbook import mplDeprecation 

C:\Python27\lib\site-packages\matplotlib\textpath.py in <module>() 
     9 from matplotlib.path import Path 
    10 from matplotlib import rcParams 
---> 11 import matplotlib.font_manager as font_manager 
    12 from matplotlib.ft2font import FT2Font, KERNING_DEFAULT, LOAD_NO_HINTING 
    13 from matplotlib.ft2font import LOAD_TARGET_LIGHT 

C:\Python27\lib\site-packages\matplotlib\font_manager.py in <module>() 
    51 import matplotlib 
    52 from matplotlib import afm 
---> 53 from matplotlib import ft2font 
    54 from matplotlib import rcParams, get_cachedir 
    55 from matplotlib.cbook import is_string_like 

ImportError: DLL load failed: The specified procedure could not be found. 

Tôi đã thử cài đặt lại Python (x, y), nhưng điều này không giải quyết được vấn đề.

Từ các câu trả lời khác trên Stackoverflow Tôi đã biết được rằng các lỗi phổ biến ở đây bao gồm thiếu các tệp msvcr90.dllmsvcp90.dll. Tôi đã tải xuống Dependency Walker và mở c:\Python27\Lib\site-packages\matplotlib\FT2FONT.PYD. Điều này cho thấy sự cố với các tệp này và với libbz2.dll. Tôi đã tải xuống và sao chép các tệp này vào c:\windows\system32.

Tôi cũng đã thử kiểm tra PATHPYTHONPATH biến môi trường của tôi, nhưng chúng xuất hiện để tham khảo Python tôi cài đặt một cách chính xác:

PATH: C:\Python27\Lib\site-packages\PyQt4;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Novell\GroupWise;C:\Program Files\MiKTeX 2.9\miktex\bin\;C:\Program Files\Microsoft SQL Server\80\Tools\Binn\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files\Common Files\AspenTech Shared\;C:\Python27;C:\Python27\DLLs;C:\Python27\Scripts;C:\Python27\gnuplot\binary;C:\Program Files\pythonxy\SciTE-3.3.2-3;C:\Program Files\pythonxy\console;C:\MinGW32-xy\bin;C:\Python27\Lib\site-packages\vtk 
PYTHONPATH: c:\Python27\DLLs 

Vấn đề thể hiện ngay cả khi chỉ sử dụng các backend AGG như trong phiên giao dịch trên, vì vậy tôi không nghĩ rằng nó có bất cứ điều gì để làm với Qt hoặc tk.

+0

+1 vì điều này có vẻ như một câu hỏi về chủ đề được nghiên cứu kỹ lưỡng. Tôi hy vọng bạn nhận được câu trả lời của bạn. –

+0

Bạn đã cố cài đặt Matplotlib từ [trang tải xuống] của riêng mình (http://matplotlib.org/downloads.html) chưa? Có một phân phối nhị phân Windows [ở đây] (https://downloads.sourceforge.net/project/matplotlib/matplotlib/matplotlib-1.4.1/windows/matplotlib-1.4.1.win32-py2.7.exe). –

+0

@eryksun Làm thế nào để tìm phiên bản bz2 mà tôi có và những gì được yêu cầu? – lip

Trả lời

5

Dường như sự cố là do ứng dụng cài đặt phiên bản BZ2 khác/không tương thích trong C:\Windows\System32\libbz2.dll. Điều này đã được sử dụng thay vì dll cùng tên trong thư mục Python27 được cài đặt bởi Python (x, y). Đây là cách tình hình xuất hiện trong Dependency Walker:

Dependency Walker showing broken libbz2

Bạn có thể thấy rằng có cái gì đó sai với libbz2.dll mặc dù Dependency Walker không liệt kê nó như là một lỗi phụ thuộc như vậy. Đổi tên hoặc xóa phiên bản trong C:\Windows\System32\ khiến phiên bản phụ thuộc được giải quyết trong c:\Python27\DLLs.

+0

Vì vậy, bạn không nên đánh dấu điều này là được chấp nhận? Và tôi đoán tiền thưởng sẽ hết hạn. – ArtOfWarfare

Các vấn đề liên quan