最近在学习backtrader。推荐下面2个中文文档:
都很不错的。后者不仅翻译了文档,还对代码注释进行了翻译。学起来很方便!
学到可视化:绘图一节,使用cerebro.plot()
时,报如下错误:
from . import locator as loc
File "***\Python38\lib\site-packages\backtrader\plot\locator.py", line 36, in <module>
from matplotlib.dates import (HOURS_PER_DAY, MIN_PER_HOUR, SEC_PER_MIN,
ImportError: cannot import name 'warnings' from 'matplotlib.dates' (***\Python38\lib\site-packages\matplotlib\dates.py)
网上搜了一下,据说是matplotlib版本的问题。
我的版本是3.4.1,据说安装较早版本的可以解决该问题。
但是我不想这么做。
研究一下错误提示,应该是在\matplotlib\dates.py
引入warnings
时发生了错误。
而warnings
是更早的\backtrader\plot\locator.py
引入的。
简单的修改\backtrader\plot\locator.py
或许可以解决这个问题。
打开\backtrader\plot\locator.py
,看到以下行:
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)
应该就是最后这个warnings出错了。
虽然不知道原理,但是把warnings删除掉看看(改成下面的样子)
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)
成了!
在没有找到更好的办法前,就这么凑合用吧。
网友评论