尝试使用matplotlib进行绘图时,我一直收到错误消息

时间:2020-07-20 16:05:05

标签: python python-3.x matplotlib

我正在使用利用matplotlib的绘图功能,突然之间,它已停止工作并返回以下错误。

from matplotlib.dates import (HOURS_PER_DAY, MIN_PER_HOUR, SEC_PER_MIN,
ImportError: cannot import name 'warnings' from 'matplotlib.dates'

是否有已知的解决方法?

谢谢

2 个答案:

答案 0 :(得分:2)

让我猜测...您正在使用backtrader,但在使用它时遇到了此问题。 您遇到的错误是:

File "/xxx/backtrader/plot/locator.py", line 35, in <module>
from matplotlib.dates import (HOURS_PER_DAY, MIN_PER_HOUR, SEC_PER_MIN,
ImportError: cannot import name 'warnings' from 'matplotlib.dates'    

该错误的根本原因是,在上述文件(locator.py)的第35行,尝试从matplotlib.dates导入“警告”:

from matplotlib.dates import (HOURS_PER_DAY, MIN_PER_HOUR, SEC_PER_MIN,
                          MONTHS_PER_YEAR, DAYS_PER_WEEK,
                          SEC_PER_HOUR, SEC_PER_DAY,
                          num2date, rrulewrapper, YearLocator,
                          MicrosecondLocator, warnings)    

但是,如果您查看文档或代码,则会发现matplotlib.dates中没有警告。在github上查看此文件历史,可以找到一行:

import warnings   

已经removed on 7 sept 2019,这可能是您注意到该问题的原因。 在Backtrader中,有一个拉取请求正在等待此问题: https://github.com/mementum/backtrader/pull/418

如果您分叉了修补程序,则可以自己将其应用于代码,也可以等待PR合并

答案 1 :(得分:1)

我遇到了同样的问题... 我正在使用 python-3.6.13、conda-4.9.2、backtrader-1.9.76.123.dist-info。

似乎我使用的 matplotlib 版本 (matplotlib-3.3.4) 是问题所在,即使导入警告(导入警告)也没有解决。

我的解决方案是:
pip 卸载 matplotlib
pip 安装 matplotlib==3.2.2

希望能帮到你,谢谢!