I have an app that uses yfianance to collect asset data and then run a portfolio optimization analysis.
When I run this app on localhost it works perfectly fine, however, when I attempt to run on Streamlit Cloud it gives me the following error and breaks after the user inputs have been entered.
1 Failed download:
- : No timezone found, symbol may be delisted
I have added a requirements.txt file with the required dependencies and versions and am unsure of how to proceed here. Has anyone encountered this error and or have any insight into how it might be solved?
Financial Portfolio Optimizer (CLOUD DEPLOYMENT ERRORS)
Financial Portfolio Optimizer Github Repo (LOCALHOST NO ERRORS)
Your code is raising exceptions, but your bare
except: clause is eating them so that you can’t see them. Don’t do that.
Apparently the main problem is
ef_max_sharpe = copy.deepcopy(ef), which raises
NotImplementedError: Creating a deepcopy of a CVXPY expression is not supported. Use .copy() instead. Do not eat all exceptions and you will probably see this message. Take a look at Allow deecopy of constraints by phschiele · Pull Request #1852 · cvxpy/cvxpy · GitHub for more on this.
The messages about failed downloads seem to be harmless. In my deployment all tickers were downloaded despite those messages.
Goyo, thanks so much for replying with such detail. I changed the bare except clause to not eat all the errors, however, solved my issue by changing the syntax of the
ef_max_sharpe = copy.deepcopy(ef)
ef_max_sharpe = ef.deepcopy() which seemed to fix the error and allow the rest of the code to run.