Yfinance 部署了 Streamlit 云“未找到时区,符号可能已下架”

问题描述 投票:0回答:1

我有一个应用程序,使用 yfianance 收集资产数据,然后运行投资组合优化分析。

当我在 localhost 上运行此应用程序时,它工作得很好,但是,当我尝试在 Streamlit Cloud 上运行时,它会给出以下错误,并在输入用户输入后中断。

1 Failed download:

- : No timezone found, symbol may be delisted

我添加了一个包含所需依赖项和版本的requirements.txt文件,但不确定如何在此处继续。有没有人遇到过这个错误,或者有任何关于如何解决它的见解?

requirements.txt

Financial Portfolio Optimizer (CLOUD DEPLOYMENT ERRORS)

CLOUD DEPLOYMENT ERRORS

Financial Portfolio Optimizer Github Repo (LOCALHOST NO ERRORS)

(LOCALHOST NO ERRORS)

我尝试确保requirements.txt 文件指定了最新版本的依赖项。

还尝试指定破坏代码的全球时区。

attempt to specify global time zone

localhost cloud streamlit yfinance
1个回答
0
投票

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

访问应用程序代码

输出:

output

© www.soinside.com 2019 - 2024. All rights reserved.