我有一个应用程序,使用 yfianance 收集资产数据,然后运行投资组合优化分析。
当我在 localhost 上运行此应用程序时,它工作得很好,但是,当我尝试在 Streamlit Cloud 上运行时,它会给出以下错误,并在输入用户输入后中断。
1 Failed download:
- : No timezone found, symbol may be delisted
我添加了一个包含所需依赖项和版本的requirements.txt文件,但不确定如何在此处继续。有没有人遇到过这个错误,或者有任何关于如何解决它的见解?
我尝试确保requirements.txt 文件指定了最新版本的依赖项。
还尝试指定破坏代码的全球时区。
在 streamlit 上使用时区已记录在here。 然而,代码片段
st.global_settings.timezone = "America/New_York"
无效。
您可以将时区信息添加到开始和结束日期,并将其传递给
yf.download()
。要将时区更改为“America/New_York”,您可以执行以下操作:
示例:
from datetime import datetime as dt
import pytz
import streamlit as st
import yfinance as yf
tz = pytz.timezone("America/New_York")
start = tz.localize(dt(2013,1,1))
end = tz.localize(dt.today())
tickers = "MA,V,AMZN,JPM,BA".split(",")
df = yf.download(tickers,start, end, auto_adjust=True)['Close']
st.table(df.head())
与
requirements.txt
:
pandas>=1.5.2
yfinance==0.2.3
streamlit==1.16.0
输出: