ImportError无法导入名称';警告';从';matplotlib.dates
羊驼backtrader绘图问题:我遇到了这个导入问题并发现了,所以我应用了代码,但相同的问题没有解决。有人能帮忙吗 我安装的matplotlib版本是3.3.1 反向交易者1.9.76.123 python 3.8.5 整个代码发布如下:ImportError无法导入名称';警告';从';matplotlib.dates,matplotlib,backtrader,Matplotlib,Backtrader,羊驼backtrader绘图问题:我遇到了这个导入问题并发现了,所以我应用了代码,但相同的问题没有解决。有人能帮忙吗 我安装的matplotlib版本是3.3.1 反向交易者1.9.76.123 python 3.8.5 整个代码发布如下: from matplotlib.dates import (HOURS_PER_DAY, MIN_PER_HOUR, SEC_PER_MIN,MONTHS_PER_YEAR, DAYS_PER_WEEK,SEC_PER_HOUR, SE
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)
import alpaca_backtrader_api
import backtrader as bt
from datetime import datetime
#import matplotlib
ALPACA_API_KEY = "XXXXX"
ALPACA_SECRET_KEY = "XXXX"
ALPACA_PAPER = True
class SmaCross(bt.SignalStrategy):
def init(self):
sma1, sma2 = bt.ind.SMA(period=10), bt.ind.SMA(period=30)
crossover = bt.ind.CrossOver(sma1, sma2)
self.signal_add(bt.SIGNAL_LONG, crossover)
cerebro = bt.Cerebro()
cerebro.addstrategy(SmaCross)
store = alpaca_backtrader_api.AlpacaStore( key_id=ALPACA_API_KEY,secret_key=ALPACA_SECRET_KEY,paper=ALPACA_PAPER)
if not ALPACA_PAPER:
broker = store.getbroker() # or just alpaca_backtrader_api.AlpacaBroker()
cerebro.setbroker(broker)
DataFactory = store.getdata # or use alpaca_backtrader_api.AlpacaData
data0 = DataFactory(dataname='AAPL', historical=True, fromdate=datetime(2015, 1, 1), timeframe=bt.TimeFrame.Days)
cerebro.adddata(data0)
print('Starting Portfolio Value: %.2f' % cerebro.broker.getvalue())
cerebro.run()
print('Final Portfolio Value: %.2f' % cerebro.broker.getvalue())
cerebro.plot()
我遇到了和你一样的问题,你的链接提供了完美的解决方案。只需从
locator.py
降级至matplotlib 3.2.2,直到backtrader中的错误修复 以下是修复请求:
pip卸载matplotlib#或conda
pip安装matplotlib==3.2.2
@laffuste将matplotlib降级到3.2.2版的解决方案为我解决了这个问题。修复此问题的PR仍处于打开状态,您还可以按照以下步骤了解有关此问题的更多信息:Mac Big Sur
对我来说,只有在以下情况下,它才会起作用:
将python3.9降级为python3.8
然后我把matplotlib==3.2.2降级了。我也这么做了:python 3.8.5,卸载matplotlib,安装matplotlib==3.2.2
我是新手,所以我首先尝试了简单的方法,通过anaconda.org,但找不到版本3.2.2。然后在Jupyter笔记本上用conda安装了它。。。没用。我最终直接通过终端完成了这项工作,效果很好。如上所述,该问题已在中解决,该补丁是最新提交给master的,但自2019-05年以来一直没有发布过 您可以按如下方式安装修补版本:
pip安装git+https://github.com/mementum/backtrader.git@0fa63ef4a35dc53cc7320813f8b15480c8f85517#egg=backtrader
您也可以在requirements.txt中指定所需的提交,如下所示:
-e git+https://github.com/mementum/backtrader.git@0fa63ef4a35dc53cc7320813f8b15480c8f85517#egg=backtrader
…然后pip安装-r requirements.txt
使用任何一种方法安装后,您都可以确认使用pip freeze
安装的版本:
。。。
反向交易者==1.9.76.123
...
如果不先卸载
backtrader
,我无法安装matplotlib==3.2.2
或修补程序
因此,这最终对我起了作用:
pip uninstall backtrader
matplotlib
:
pip install matplotlib
请缩进您的代码,这是否适用于Python 3.9?在我的情况下,它不起作用,我无法安装此版本的matplotlib。这对我起作用。非常感谢!PackagesNotFoundError使用conda(miniforge/osx arm)请提供您使用的确切终端命令。请记住将格式设置为code.pip uninstall matplotlibpip install matplotlib==3.2.2这在python3.9上对我有效这在python3.9上对我也有效。添加到requirements.txt中的选项是一个很好的选择,这是使用Python3.9和MacOSXCatalina的唯一答案。在系统上查找locator.py并从import语句中删除“warnings”参数。请参阅Ch4r0n在上述答案中给出的链接上的帖子。
pip install matplotlib