Heroku / Python - 脚本因错误而停止

Heroku / Python - script stops with error

我有一个 python 脚本,我想在 heroku 平台上 运行 - 一切看起来都很好并且按计划进行 - 但最后我总是在 运行ning 时遇到错误在 heroku 上(我在 papertrail 日志中看到了这个)

当我 运行 我的机器上的本地脚本运行正常。

使用yfinance模块读取数据时出现错误: (显然在最后一行)

tday = datetime.today()
startDay = tday - timedelta(days=2200)            
print(f"Read stock price data for {stock}...")
hist_price_stock = yf.download(stock,start=startDay,end=tday)

这是我从 heroku / papertrail 得到的错误信息: (乍一看对我帮助不大)

Sep 04 03:13:12 scoresupdatetickers app/worker.1 Read stock price data for AAPL...
Sep 04 03:13:12 scoresupdatetickers app/worker.1 Exception in thread Thread-1:
Sep 04 03:13:12 scoresupdatetickers app/worker.1 Traceback (most recent call last):
Sep 04 03:13:12 scoresupdatetickers app/worker.1   File "/app/.heroku/python/lib/python3.9/threading.py", line 954, in _bootstrap_inner
Sep 04 03:13:12 scoresupdatetickers app/worker.1     self.run()
Sep 04 03:13:12 scoresupdatetickers app/worker.1   File "/app/.heroku/python/lib/python3.9/threading.py", line 892, in run
Sep 04 03:13:12 scoresupdatetickers app/worker.1     self._target(*self._args, **self._kwargs)
Sep 04 03:13:12 scoresupdatetickers app/worker.1   File "/app/.heroku/python/lib/python3.9/site-packages/multitasking/__init__.py", line 102, in _run_via_pool
Sep 04 03:13:12 scoresupdatetickers app/worker.1     return callee(*args, **kwargs)
Sep 04 03:13:12 scoresupdatetickers app/worker.1   File "/app/.heroku/python/lib/python3.9/site-packages/yfinance/multi.py", line 167, in _download_one_threaded
Sep 04 03:13:12 scoresupdatetickers app/worker.1     data = _download_one(ticker, start, end, auto_adjust, back_adjust,
Sep 04 03:13:12 scoresupdatetickers app/worker.1   File "/app/.heroku/python/lib/python3.9/site-packages/yfinance/multi.py", line 179, in _download_one
Sep 04 03:13:12 scoresupdatetickers app/worker.1     return Ticker(ticker).history(period=period, interval=interval,
Sep 04 03:13:12 scoresupdatetickers app/worker.1   File "/app/.heroku/python/lib/python3.9/site-packages/yfinance/base.py", line 157, in history
Sep 04 03:13:12 scoresupdatetickers app/worker.1     data = data.json()
Sep 04 03:13:12 scoresupdatetickers app/worker.1   File "/app/.heroku/python/lib/python3.9/site-packages/requests/models.py", line 900, in json
Sep 04 03:13:12 scoresupdatetickers app/worker.1     return complexjson.loads(self.text, **kwargs)
Sep 04 03:13:12 scoresupdatetickers app/worker.1   File "/app/.heroku/python/lib/python3.9/json/__init__.py", line 346, in loads
Sep 04 03:13:12 scoresupdatetickers app/worker.1     return _default_decoder.decode(s)
Sep 04 03:13:12 scoresupdatetickers app/worker.1   File "/app/.heroku/python/lib/python3.9/json/decoder.py", line 337, in decode
Sep 04 03:13:12 scoresupdatetickers app/worker.1     obj, end = self.raw_decode(s, idx=_w(s, 0).end())
Sep 04 03:13:12 scoresupdatetickers app/worker.1   File "/app/.heroku/python/lib/python3.9/json/decoder.py", line 355, in raw_decode
Sep 04 03:13:12 scoresupdatetickers app/worker.1     raise JSONDecodeError("Expecting value", s, err.value) from None
Sep 04 03:13:12 scoresupdatetickers app/worker.1 json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
Sep 04 07:09:47 scoresupdatetickers heroku/scheduler.7291 Cycling
Sep 04 07:09:47 scoresupdatetickers heroku/scheduler.7291 State changed from up to complete
Sep 04 07:09:48 scoresupdatetickers heroku/scheduler.7291 Stopping all processes with SIGTERM
Sep 04 07:09:48 scoresupdatetickers heroku/scheduler.7291 Process exited with status 143

知道为什么这只是 运行 在本地而不是托管在 heroku 上吗?

yfinance 是一个 python 包。

您必须将它的版本更新到您的 requirements.txt 文件中的最新版本,然后将这些更改推送到 Heroku。

Heroku 随后将安装更新版本,然后您的应用程序将使用最新版本的 yfinance