python - ImportError: cannot import name 'weight_as_number' from 'matplotlib.font_manager' 错误在 Kivy Matplotlib 后端
问题描述
当我导入 garden.matplotlib 包时,我收到一条错误消息: ImportError: cannot import name 'weight_as_number' from 'matplotlib.font_manager'
我在命令提示符中使用 Python 逐步导入。我在 garden.matplotlib 导入行中发现错误。
系统:Windows 10、Python 3.7.0、Kivy 1.10.1
>>> import matplotlib
Backend TkAgg is interactive backend. Turning interactive mode on.
>>> matplotlib.use('module://kivy.garden.matplotlib.backend_kivy')
>>>from kivy.garden.matplotlib.backend_kivyagg import FigureCanvasKivyAgg
[INFO ] [Logger ] Record log in C:\Users\user.kivy\logs\kivy_18-10-03_7.txt
[INFO ] [Kivy ] v1.10.1
[INFO ] [Python ] v3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:06:47) [MSC v.1914 32 bit (Intel)]
Traceback (most recent call last):
File "", line 1, in
File "C:\Program Files\JetBrains\PyCharm Community Edition 2018.2\helpers\pydev_pydev_bundle\pydev_import_hook.py", line 20, in do_import
module = self.system_import(name, *args, **kwargs)
File "D:\Documents\venv\lib\site-packages\kivy\garden_init.py", line 100, in load_module
return self.load_module(fullname, moddir)
File "D:\Documents\venv\lib\site-packages\kivy\garden_init.py", line 104, in _load_module
('', '', imp.PKG_DIRECTORY))
File "C:\Python37-32\lib\imp.py", line 245, in load_module
return load_package(name, filename)
File "C:\Python37-32\lib\imp.py", line 217, in load_package
return load(spec)
File "C:\Users\user.kivy\garden\garden.matplotlib_init.py", line 1, in
from kivy.garden.matplotlib.backend_kivy import FigureCanvasKivy,
File "C:\Program Files\JetBrains\PyCharm Community Edition 2018.2\helpers\pydev_pydev_bundle\pydev_import_hook.py", line 20, in do_import
module = self._system_import(name, *args, **kwargs)
File "C:\Users\user.kivy\garden\garden.matplotlib\backend_kivy.py", line 257, in
from matplotlib.font_manager import weight_as_number
ImportError: cannot import name 'weight_as_number' from 'matplotlib.font_manager' (D:\Documents\venv\lib\site-packages\matplotlib\font_manager.py)
解决方案
Kivy 仅支持旧版本的 matplotlib。他们在 matplotlib==2.1.x 之后的某处删除了 weight_as_number 函数,因此如果您运行的是最新版本(3.0.0),它将无法正常工作。
尝试使用 matplotlib==2.1.2 (我目前在这个版本,可以确认 weight_as_number 仍然存在)
推荐阅读
- python - 使用任何库从 python 中的验证码中读取所有字符
- java - NullPointerException 甚至所有的对象都初始化了
- c# - 对类文件中包含的方法的 AJAX 请求
- java - 根据属性将一些属性从一个列表复制到另一个列表(不同的属性合并)
- java - 如何从 Json 文件中获取价值
- php - 带输入框的php问卷
- android - 如何以编程方式获得底线,就像在默认的edittext中与android中的gradientdrawable一样
- macos - 在不使用 FFSFindFolder 的情况下找到 MacOS X Framework 文件夹
- java - QGIS/JOSM/GOOGLE MAP API:一种过滤方式(Highway=street_light)并将其保存在 CSV 文件中
- android - 我只想在单击按钮时读取 NFC