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
。
我有一个 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
。