【问题标题】:Heroku Application Error when deploying Dash app部署 Dash 应用程序时出现 Heroku 应用程序错误
【发布时间】:2018-11-23 21:17:08
【问题描述】:

我正在尝试使用 Dash 制作的应用在 Heroku 上部署 Web 应用。我已经在 Heroku 上成功部署了几个示例应用程序,并且我已经在本地服务器上成功部署了我的应用程序。当我尝试在 Heroku 上部署自己的应用程序时,问题就出现了。我尝试了几种不同的方法在 Heroku 上进行部署,但尽管构建成功,但我仍然收到“应用程序错误”。我已经包含了我的日志,但可以帮助理解它们。我对此还是很陌生,所以任何见解都会受到赞赏。

2018-06-14T06:16:06.479983+00:00 app[web.1]:     self.reap_workers()
2018-06-14T06:16:06.479989+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/arbiter.py", line 525, in reap_workers
2018-06-14T06:16:06.480336+00:00 app[web.1]:     raise HaltServer(reason, self.WORKER_BOOT_ERROR)
2018-06-14T06:16:06.480369+00:00 app[web.1]: gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>
2018-06-14T06:16:06.571040+00:00 heroku[web.1]: State changed from up to crashed
2018-06-14T06:16:06.555492+00:00 heroku[web.1]: Process exited with status 1
2018-06-14T06:20:34.738228+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=builddlrapp.herokuapp.com request_id=75e9c068-72cb-41e3-8bbd-c6790c722f8e fwd="137.158.71.91" dyno= connect= service= status=503 bytes= protocol=https
2018-06-14T06:20:38.238293+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=builddlrapp.herokuapp.com request_id=c0905560-3e86-4059-918a-3c795824325c fwd="137.158.71.91" dyno= connect= service= status=503 bytes= protocol=https
2018-06-14T06:31:25.832995+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=builddlrapp.herokuapp.com request_id=3d771909-ec4e-4312-9567-6653b443ef6f fwd="137.158.71.91" dyno= connect= service= status=503 bytes= protocol=https
2018-06-14T06:31:26.464840+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=builddlrapp.herokuapp.com request_id=b1ae29be-3f08-4d94-b669-243b5a303a5b fwd="137.158.71.91" dyno= connect= service= status=503 bytes= protocol=https
2018-06-14T06:34:44.629354+00:00 heroku[web.1]: State changed from crashed to starting
2018-06-14T06:34:53.953676+00:00 heroku[web.1]: Starting process with command `gunicorn app:server`
2018-06-14T06:34:55.963096+00:00 app[web.1]: [2018-06-14 06:34:55 +0000] [4] [INFO] Starting gunicorn 19.8.1
2018-06-14T06:34:55.963587+00:00 app[web.1]: [2018-06-14 06:34:55 +0000] [4] [INFO] Listening at: http://0.0.0.0:41360 (4)
2018-06-14T06:34:55.963682+00:00 app[web.1]: [2018-06-14 06:34:55 +0000] [4] [INFO] Using worker: sync
2018-06-14T06:34:55.967329+00:00 app[web.1]: [2018-06-14 06:34:55 +0000] [8] [INFO] Booting worker with pid: 8
2018-06-14T06:34:56.010075+00:00 app[web.1]: [2018-06-14 06:34:56 +0000] [9] [INFO] Booting worker with pid: 9
2018-06-14T06:34:56.449927+00:00 heroku[web.1]: State changed from starting to up
2018-06-14T06:34:57.353527+00:00 app[web.1]: [2018-06-14 06:34:57 +0000] [9] [ERROR] Exception in worker process
2018-06-14T06:34:57.353564+00:00 app[web.1]: Traceback (most recent call last):
2018-06-14T06:34:57.353566+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/arbiter.py", line 583, in spawn_worker
2018-06-14T06:34:57.353567+00:00 app[web.1]:     worker.init_process()
2018-06-14T06:34:57.353568+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/workers/base.py", line 129, in init_process
2018-06-14T06:34:57.353569+00:00 app[web.1]:     self.load_wsgi()
2018-06-14T06:34:57.353570+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/workers/base.py", line 138, in load_wsgi
2018-06-14T06:34:57.353571+00:00 app[web.1]:     self.wsgi = self.app.wsgi()
2018-06-14T06:34:57.353573+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/app/base.py", line 67, in wsgi
2018-06-14T06:34:57.353574+00:00 app[web.1]:     self.callable = self.load()
2018-06-14T06:34:57.353576+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/app/wsgiapp.py", line 52, in load
2018-06-14T06:34:57.353577+00:00 app[web.1]:     return self.load_wsgiapp()
2018-06-14T06:34:57.353578+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/app/wsgiapp.py", line 41, in load_wsgiapp
2018-06-14T06:34:57.353579+00:00 app[web.1]:     return util.import_app(self.app_uri)
2018-06-14T06:34:57.353580+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/util.py", line 350, in import_app
2018-06-14T06:34:57.353581+00:00 app[web.1]:     __import__(module)
2018-06-14T06:34:57.353582+00:00 app[web.1]:   File "/app/app.py", line 12, in <module>
2018-06-14T06:34:57.353583+00:00 app[web.1]:     import dash_table_experiments as dt
2018-06-14T06:34:57.353590+00:00 app[web.1]: ModuleNotFoundError: No module named 'dash_table_experiments'
2018-06-14T06:34:57.355356+00:00 app[web.1]: [2018-06-14 06:34:57 +0000] [9] [INFO] Worker exiting (pid: 9)
2018-06-14T06:34:57.358463+00:00 app[web.1]: [2018-06-14 06:34:57 +0000] [8] [ERROR] Exception in worker process
2018-06-14T06:34:57.358465+00:00 app[web.1]: Traceback (most recent call last):
2018-06-14T06:34:57.358466+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/arbiter.py", line 583, in spawn_worker
2018-06-14T06:34:57.358467+00:00 app[web.1]:     worker.init_process()
2018-06-14T06:34:57.358468+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/workers/base.py", line 129, in init_process
2018-06-14T06:34:57.358469+00:00 app[web.1]:     self.load_wsgi()
2018-06-14T06:34:57.358471+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/workers/base.py", line 138, in load_wsgi
2018-06-14T06:34:57.358472+00:00 app[web.1]:     self.wsgi = self.app.wsgi()
2018-06-14T06:34:57.358473+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/app/base.py", line 67, in wsgi
2018-06-14T06:34:57.358474+00:00 app[web.1]:     self.callable = self.load()
2018-06-14T06:34:57.358475+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/app/wsgiapp.py", line 52, in load
2018-06-14T06:34:57.358476+00:00 app[web.1]:     return self.load_wsgiapp()
2018-06-14T06:34:57.358477+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/app/wsgiapp.py", line 41, in load_wsgiapp
2018-06-14T06:34:57.358479+00:00 app[web.1]:     return util.import_app(self.app_uri)
2018-06-14T06:34:57.358480+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/util.py", line 350, in import_app
2018-06-14T06:34:57.358481+00:00 app[web.1]:     __import__(module)
2018-06-14T06:34:57.358482+00:00 app[web.1]:   File "/app/app.py", line 12, in <module>
2018-06-14T06:34:57.358483+00:00 app[web.1]:     import dash_table_experiments as dt
2018-06-14T06:34:57.358487+00:00 app[web.1]: ModuleNotFoundError: No module named 'dash_table_experiments'
2018-06-14T06:34:57.360264+00:00 app[web.1]: [2018-06-14 06:34:57 +0000] [8] [INFO] Worker exiting (pid: 8)
2018-06-14T06:34:57.415375+00:00 app[web.1]: Traceback (most recent call last):
2018-06-14T06:34:57.415384+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/arbiter.py", line 210, in run
2018-06-14T06:34:57.415674+00:00 app[web.1]:     self.sleep()
2018-06-14T06:34:57.415677+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/arbiter.py", line 360, in sleep
2018-06-14T06:34:57.415899+00:00 app[web.1]:     ready = select.select([self.PIPE[0]], [], [], 1.0)
2018-06-14T06:34:57.415901+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/arbiter.py", line 245, in handle_chld
2018-06-14T06:34:57.416091+00:00 app[web.1]:     self.reap_workers()
2018-06-14T06:34:57.416095+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/arbiter.py", line 525, in reap_workers
2018-06-14T06:34:57.416352+00:00 app[web.1]:     raise HaltServer(reason, self.WORKER_BOOT_ERROR)
2018-06-14T06:34:57.416387+00:00 app[web.1]: gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>
2018-06-14T06:34:57.416389+00:00 app[web.1]: 
2018-06-14T06:34:57.416390+00:00 app[web.1]: During handling of the above exception, another exception occurred:
2018-06-14T06:34:57.416391+00:00 app[web.1]: 
2018-06-14T06:34:57.416394+00:00 app[web.1]: Traceback (most recent call last):
2018-06-14T06:34:57.416395+00:00 app[web.1]:   File "/app/.heroku/python/bin/gunicorn", line 11, in <module>
2018-06-14T06:34:57.416514+00:00 app[web.1]:     sys.exit(run())
2018-06-14T06:34:57.416516+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/app/wsgiapp.py", line 61, in run
2018-06-14T06:34:57.416632+00:00 app[web.1]:     WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
2018-06-14T06:34:57.416633+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/app/base.py", line 223, in run
2018-06-14T06:34:57.416796+00:00 app[web.1]:     super(Application, self).run()
2018-06-14T06:34:57.416797+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/app/base.py", line 72, in run
2018-06-14T06:34:57.416923+00:00 app[web.1]:     Arbiter(self).run()
2018-06-14T06:34:57.416924+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/arbiter.py", line 232, in run
2018-06-14T06:34:57.417088+00:00 app[web.1]:     self.halt(reason=inst.reason, exit_status=inst.exit_status)
2018-06-14T06:34:57.417089+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/arbiter.py", line 345, in halt
2018-06-14T06:34:57.417316+00:00 app[web.1]:     self.stop()
2018-06-14T06:34:57.417341+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/arbiter.py", line 393, in stop
2018-06-14T06:34:57.417542+00:00 app[web.1]:     time.sleep(0.1)
2018-06-14T06:34:57.417543+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/arbiter.py", line 245, in handle_chld
2018-06-14T06:34:57.417703+00:00 app[web.1]:     self.reap_workers()
2018-06-14T06:34:57.417705+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/arbiter.py", line 525, in reap_workers
2018-06-14T06:34:57.417949+00:00 app[web.1]:     raise HaltServer(reason, self.WORKER_BOOT_ERROR)
2018-06-14T06:34:57.417969+00:00 app[web.1]: gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>
2018-06-14T06:34:57.482436+00:00 heroku[web.1]: Process exited with status 1
2018-06-14T06:34:57.498547+00:00 heroku[web.1]: State changed from up to crashed

【问题讨论】:

  • 没有使用破折号的经验,但我猜“ModuleNotFoundError: No module named 'dash_table_experiments'”是关键问题。由于某种原因,它没有加载。确定安装了吗?
  • dash_table_experiments 是在实际代码中导入的。我最初在使用 virtualenv 时没有 pip install dash_table_experiments 但后来我回去安装了它,但仍然没有运气。
  • import dash import dash_core_components as dcc import dash_html_components as html import dash_table_experiments as dt from dash.dependencies import Input, Output#, State import plotly.graph_objs as go import plotly.offline as offline offline.init_notebook_mode(connected =True) import pandas as pd import numpy as np import os import base64 import features from support import appProfiles
  • 这些都是我的依赖。激活 virtualenv 后,我 pip 安装前四个以及 dash-renderer、plotly 和 gunicorn。我最近的部署尝试仍然给我一个应用程序错误。我是否需要 pip 安装任何其他依赖项?
  • 抱歉,我的回答有点慢,我从未使用过 dash,所以我不是真正的合适人选。我只使用过 Django,然后我有一个 Piplock 文件,它需要保留我的 django 服务所需的所有库。如果我在 pip 安装后忘记添加到该文件,webapp 将失败。

标签: python heroku web-applications plotly-dash


【解决方案1】:

我包含了一个 requirements.txt 文件,其中包含应用程序所需的所有包,并通过命令行使用 git 推送到 heroku 并让它工作。话虽如此,在您通过 pip 在虚拟环境中安装软件包后,很难判断发生了什么。包还没有加载吗?

这是我在使用 miniconda 环境的 requirements.txt 文件中的内容。它可能比您的应用所需的更多:

cement==2.8.2
certifi==2018.4.16
chardet==3.0.4
click==6.7
colorama==0.3.9
Cython==0.28.3
dash==0.21.1
dash-auth==1.0.2
dash-core-components==0.25.1
dash-html-components==0.11.0
dash-renderer==0.13.0
dash-table-experiments==0.6.0
decorator==4.3.0
docutils==0.14
Flask==1.0.2
Flask-Compress==1.4.0
Flask-SeaSurf==0.2.2
gunicorn==19.9.0
idna==2.7
ipython-genutils==0.2.0
itsdangerous==0.24
Jinja2==2.10
jmespath==0.9.3
jsonschema==2.6.0
jupyter-core==4.4.0
MarkupSafe==1.0
nbformat==4.4.0
numpy==1.14.5
pandas==0.23.3
pathspec==0.5.5
plotly==3.0.2
python-dateutil==2.7.3
pytz==2018.5
PyYAML==3.13
requests==2.19.1
retrying==1.3.3
semantic-version==2.5.0
six==1.11.0
tabulate==0.7.5
termcolor==1.1.0
traitlets==4.3.2
urllib3==1.23
Werkzeug==0.14.1
wincertstore==0.2

【讨论】:

    【解决方案2】:

    缺少“dash_table_experiments” 您需要将其添加到您的 requirements.txt 混帐添加A- git commit -m '修改'

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-03
      • 2017-02-04
      • 2013-02-15
      • 1970-01-01
      • 2018-05-30
      • 1970-01-01
      • 2022-09-25
      • 1970-01-01
      相关资源
      最近更新 更多