我计划在Heroku上部署我的机器学习模型。我在项目中使用了’language_check’库,该库需要在机器上安装Java。现在,当我将应用部署到Heroku时,构建是成功的,但应用无法运行(很可能是由于没有安装Java)。
这是我的日志:
State changed from starting to up2020-04-02T16:00:21.174188+00:00 app[web.1]: [2020-04-02 16:00:21 +0000] [4] [INFO] Starting gunicorn 20.0.42020-04-02T16:00:21.174713+00:00 app[web.1]: [2020-04-02 16:00:21 +0000] [4] [INFO] Listening at: http://0.0.0.0:56448 (4)2020-04-02T16:00:21.174809+00:00 app[web.1]: [2020-04-02 16:00:21 +0000] [4] [INFO] Using worker: sync2020-04-02T16:00:21.178572+00:00 app[web.1]: [2020-04-02 16:00:21 +0000] [10] [INFO] Booting worker with pid: 102020-04-02T16:00:21.207904+00:00 app[web.1]: [2020-04-02 16:00:21 +0000] [11] [INFO] Booting worker with pid: 112020-04-02T16:00:22.074140+00:00 app[web.1]: [2020-04-02 16:00:22 +0000] [11] [ERROR] Exception in worker process2020-04-02T16:00:22.074185+00:00 app[web.1]: Traceback (most recent call last):2020-04-02T16:00:22.074186+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/language_check/__init__.py", line 594, in get_server_cmd2020-04-02T16:00:22.074187+00:00 app[web.1]: cmd = cache['server_cmd']2020-04-02T16:00:22.074187+00:00 app[web.1]: KeyError: 'server_cmd'2020-04-02T16:00:22.074188+00:00 app[web.1]:2020-04-02T16:00:22.074188+00:00 app[web.1]: During handling of the above exception, another exception occurred:2020-04-02T16:00:22.074188+00:00 app[web.1]:2020-04-02T16:00:22.074189+00:00 app[web.1]: Traceback (most recent call last):2020-04-02T16:00:22.074189+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/language_check/__init__.py", line 605, in get_jar_info2020-04-02T16:00:22.074189+00:00 app[web.1]: java_path, jar_path = cache['jar_info']2020-04-02T16:00:22.074198+00:00 app[web.1]: KeyError: 'jar_info'2020-04-02T16:00:22.074198+00:00 app[web.1]:2020-04-02T16:00:22.074199+00:00 app[web.1]: During handling of the above exception, another exception occurred:2020-04-02T16:00:22.074199+00:00 app[web.1]:2020-04-02T16:00:22.074199+00:00 app[web.1]: Traceback (most recent call last):2020-04-02T16:00:22.074200+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/arbiter.py", line 583, in spawn_worker2020-04-02T16:00:22.074200+00:00 app[web.1]: worker.init_process()2020-04-02T16:00:22.074200+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/workers/base.py", line 119, in init_process2020-04-02T16:00:22.074201+00:00 app[web.1]: self.load_wsgi()2020-04-02T16:00:22.074201+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/workers/base.py", line 144, in load_wsgi2020-04-02T16:00:22.074201+00:00 app[web.1]: self.wsgi = self.app.wsgi()2020-04-02T16:00:22.074202+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/app/base.py", line 67, in wsgi2020-04-02T16:00:22.074202+00:00 app[web.1]: self.callable = self.load()2020-04-02T16:00:22.074202+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/app/wsgiapp.py", line 49, in load2020-04-02T16:00:22.074202+00:00 app[web.1]: return self.load_wsgiapp()2020-04-02T16:00:22.074203+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/app/wsgiapp.py", line 39, in load_wsgiapp2020-04-02T16:00:22.074203+00:00 app[web.1]: return util.import_app(self.app_uri)2020-04-02T16:00:22.074203+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/util.py", line 358, in import_app2020-04-02T16:00:22.074204+00:00 app[web.1]: mod = importlib.import_module(module)2020-04-02T16:00:22.074204+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/importlib/__init__.py", line 126, in import_module2020-04-02T16:00:22.074205+00:00 app[web.1]: return _bootstrap._gcd_import(name[level:], package, level)2020-04-02T16:00:22.074205+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 994, in _gcd_import2020-04-02T16:00:22.074205+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 971, in _find_and_load2020-04-02T16:00:22.074206+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked2020-04-02T16:00:22.074206+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 665, in _load_unlocked2020-04-02T16:00:22.074206+00:00 app[web.1]: File "<frozen importlib._bootstrap_external>", line 678, in exec_module2020-04-02T16:00:22.074207+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed2020-04-02T16:00:22.074207+00:00 app[web.1]: File "/app/app.py", line 2, in <module>2020-04-02T16:00:22.074207+00:00 app[web.1]: from src import predict as main_app2020-04-02T16:00:22.074208+00:00 app[web.1]: File "/app/src/predict.py", line 6, in <module>2020-04-02T16:00:22.074208+00:00 app[web.1]: from src import nlp_custom2020-04-02T16:00:22.074208+00:00 app[web.1]: File "/app/src/nlp_custom.py", line 4, in <module>2020-04-02T16:00:22.074209+00:00 app[web.1]: tool = language_check.LanguageTool('en-US')2020-04-02T16:00:22.074209+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/language_check/__init__.py", line 196, in __init__2020-04-02T16:00:22.074209+00:00 app[web.1]: self._start_server_on_free_port()2020-04-02T16:00:22.074210+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/language_check/__init__.py", line 333, in _start_server_on_free_port2020-04-02T16:00:22.074210+00:00 app[web.1]: cls._start_local_server()2020-04-02T16:00:22.074210+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/language_check/__init__.py", line 345, in _start_local_server2020-04-02T16:00:22.074211+00:00 app[web.1]: server_cmd = get_server_cmd(cls._port)2020-04-02T16:00:22.074211+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/language_check/__init__.py", line 596, in get_server_cmd2020-04-02T16:00:22.074211+00:00 app[web.1]: java_path, jar_path = get_jar_info()2020-04-02T16:00:22.074211+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/language_check/__init__.py", line 609, in get_jar_info2020-04-02T16:00:22.074212+00:00 app[web.1]: raise JavaError("can't find Java")2020-04-02T16:00:22.074275+00:00 app[web.1]: language_check.JavaError: can't find Java2020-04-02T16:00:22.075377+00:00 app[web.1]: [2020-04-02 16:00:22 +0000] [11] [INFO] Worker exiting (pid: 11)
我是Heroku的新手。请帮助我,并建议一些可以手动安装Java的替代方案。
回答:
通过运行以下命令将JVM构建包添加到您的应用中:
$ heroku buildpacks:add heroku/jvm
然后重新部署应用