Rya*_*eid 4 python matplotlib python-3.x
我正在使用一个利用 matplotlib 的绘图函数,突然间,它停止工作并返回以下错误。
from matplotlib.dates import (HOURS_PER_DAY, MIN_PER_HOUR, SEC_PER_MIN,
ImportError: cannot import name 'warnings' from 'matplotlib.dates'
Run Code Online (Sandbox Code Playgroud)
是否有已知的修复方法?
谢谢
让我猜猜...您正在使用 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'
Run Code Online (Sandbox Code Playgroud)
错误的根本原因是在上述文件 (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)
Run Code Online (Sandbox Code Playgroud)
但如果你查看文档或代码,你会发现 matplotlib.dates 中没有警告。深入 github 上的文件历史记录,可以发现一行:
import warnings
Run Code Online (Sandbox Code Playgroud)
已于2019 年 9 月 7 日删除,这可能是您注意到问题的原因。在 Backtrader 中,有一个拉取请求正在等待此问题: https ://github.com/mementum/backtrader/pull/418
如果您分叉了代码,您可以自行修复代码,或者等待 PR 被合并