我正在使用利用matplotlib的绘图功能,突然之间,它已停止工作并返回以下错误。
from matplotlib.dates import (HOURS_PER_DAY, MIN_PER_HOUR, SEC_PER_MIN,
ImportError: cannot import name 'warnings' from 'matplotlib.dates'
是否有已知的解决方法?
谢谢
答案 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
希望能帮到你,谢谢!