2017-06-10 3 views
1

私は、HerokuにPythonモジュールを配備する際に問題があります。 これはpython2に基づいています。PythonモジュールをHerokuにデプロイしますか?

requirements.txtファイル:私はトラブルのアップロードを抱えている

Flask==0.11.1 
Jinja2==2.8 
MarkupSafe==0.23 
Werkzeug==0.11.10 
click==6.6 
gunicorn==19.6.0 
itsdangerous==0.24 
requests==2.10.0 
wsgiref==0.1.2 
konlpy==0.4.4 
gensim==2.1.0 

モジュールはkonlpyとgensimです。 仮想環境にすべてのモジュールをインストール済みです。私はgensim(konlpyではなく)用のビルドパックも設定しました。

エラー・ログには、次のとおりです。私は何をしようとしている

2017-06-10T08:56:17.851884+00:00 app[web.1]: [2017-06-10 08:56:17 +0000] [4] [INFO] Shutting down: Master 
2017-06-10T08:56:17.851975+00:00 app[web.1]: [2017-06-10 08:56:17 +0000] [4] [INFO] Reason: Worker failed to boot. 
2017-06-10T08:56:17.946195+00:00 heroku[web.1]: State changed from starting to crashed 
2017-06-10T08:56:17.936020+00:00 heroku[web.1]: Process exited with status 3 
2017-06-10T08:56:55.589601+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=POST path="/" host=afternoon-beach-22534.herokuapp.com request_id=8e14e22a-b473-4aa8-959e-c26a80f8775e fwd="69.63.188.105" dyno= connect= service= status=503 bytes= protocol=https 
2017-06-10T08:58:15.541365+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=POST path="/" host=afternoon-beach-22534.herokuapp.com request_id=1bd4f45b-1db6-4e24-be10-28b0b62b7c40 fwd="173.252.124.202" dyno= connect= service= status=503 bytes= protocol=https 
2017-06-10T08:59:04.103999+00:00 heroku[web.1]: State changed from crashed to starting 
2017-06-10T08:59:19.881438+00:00 heroku[web.1]: Starting process with command `gunicorn app:app --log-file=-` 
2017-06-10T08:59:23.010876+00:00 app[web.1]: [2017-06-10 08:59:23 +0000] [4] [INFO] Starting gunicorn 19.6.0 
2017-06-10T08:59:23.012294+00:00 app[web.1]: [2017-06-10 08:59:23 +0000] [4] [INFO] Using worker: sync 
2017-06-10T08:59:23.020541+00:00 app[web.1]: [2017-06-10 08:59:23 +0000] [9] [INFO] Booting worker with pid: 9 
2017-06-10T08:59:23.089805+00:00 app[web.1]: [2017-06-10 08:59:23 +0000] [11] [INFO] Booting worker with pid: 11 
2017-06-10T08:59:23.011687+00:00 app[web.1]: [2017-06-10 08:59:23 +0000] [4] [INFO] Listening at: http://0.0.0.0:42198 (4) 
2017-06-10T08:59:23.730044+00:00 heroku[web.1]: Process exited with status 1 
2017-06-10T08:59:23.520921+00:00 app[web.1]: [2017-06-10 08:59:23 +0000] [11] [ERROR] Exception in worker process 
2017-06-10T08:59:23.520934+00:00 app[web.1]: Traceback (most recent call last): 
2017-06-10T08:59:23.520936+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/arbiter.py", line 557, in spawn_worker 
2017-06-10T08:59:23.520936+00:00 app[web.1]:  worker.init_process() 
2017-06-10T08:59:23.520937+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/workers/base.py", line 126, in init_process 
2017-06-10T08:59:23.520938+00:00 app[web.1]:  self.load_wsgi() 
2017-06-10T08:59:23.520938+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/workers/base.py", line 136, in load_wsgi 
2017-06-10T08:59:23.520939+00:00 app[web.1]:  self.wsgi = self.app.wsgi() 
2017-06-10T08:59:23.520940+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/app/base.py", line 67, in wsgi 
2017-06-10T08:59:23.520941+00:00 app[web.1]:  self.callable = self.load() 
2017-06-10T08:59:23.520941+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 65, in load 
2017-06-10T08:59:23.520942+00:00 app[web.1]:  return self.load_wsgiapp() 
2017-06-10T08:59:23.520942+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 52, in load_wsgiapp 
2017-06-10T08:59:23.520943+00:00 app[web.1]:  return util.import_app(self.app_uri) 
2017-06-10T08:59:23.520944+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/util.py", line 357, in import_app 
2017-06-10T08:59:23.520944+00:00 app[web.1]:  __import__(module) 
2017-06-10T08:59:23.520945+00:00 app[web.1]: File "/app/app.py", line 8, in <module> 
2017-06-10T08:59:23.520946+00:00 app[web.1]:  from konlpy.tag import Twitter; t = Twitter() 
2017-06-10T08:59:23.520947+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/konlpy/tag/_twitter.py", line 72, in __init__ 
2017-06-10T08:59:23.520947+00:00 app[web.1]:  jvm.init_jvm(jvmpath) 
2017-06-10T08:59:23.520948+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/konlpy/jvm.py", line 40, in init_jvm 
2017-06-10T08:59:23.520949+00:00 app[web.1]:  jvmpath = jvmpath or jpype.getDefaultJVMPath() 
2017-06-10T08:59:23.520949+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/jpype/_core.py", line 114, in get_default_jvm_path 
2017-06-10T08:59:23.520950+00:00 app[web.1]:  return finder.get_jvm_path() 
2017-06-10T08:59:23.520951+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/jpype/_jvmfinder.py", line 121, in get_jvm_path 
2017-06-10T08:59:23.520951+00:00 app[web.1]:  jvm = method() 
2017-06-10T08:59:23.520952+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/jpype/_jvmfinder.py", line 164, in _get_from_known_locations 
2017-06-10T08:59:23.520953+00:00 app[web.1]:  for home in self.find_possible_homes(self._locations): 
2017-06-10T08:59:23.520954+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/jpype/_jvmfinder.py", line 95, in find_possible_homes 
2017-06-10T08:59:23.520954+00:00 app[web.1]:  for childname in sorted(os.listdir(parent)): 
2017-06-10T08:59:23.520955+00:00 app[web.1]: OSError: [Errno 2] No such file or directory: '/usr/lib/jvm' 
2017-06-10T08:59:23.520962+00:00 app[web.1]: [2017-06-10 08:59:23 +0000] [9] [ERROR] Exception in worker process 
2017-06-10T08:59:23.520962+00:00 app[web.1]: Traceback (most recent call last): 
2017-06-10T08:59:23.520963+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/arbiter.py", line 557, in spawn_worker 
2017-06-10T08:59:23.520964+00:00 app[web.1]:  worker.init_process() 
2017-06-10T08:59:23.520964+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/workers/base.py", line 126, in init_process 
2017-06-10T08:59:23.520965+00:00 app[web.1]:  self.load_wsgi() 
2017-06-10T08:59:23.520966+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/workers/base.py", line 136, in load_wsgi 
2017-06-10T08:59:23.520966+00:00 app[web.1]:  self.wsgi = self.app.wsgi() 
2017-06-10T08:59:23.520967+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/app/base.py", line 67, in wsgi 
2017-06-10T08:59:23.520967+00:00 app[web.1]:  self.callable = self.load() 
2017-06-10T08:59:23.520968+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 65, in load 
2017-06-10T08:59:23.520969+00:00 app[web.1]:  return self.load_wsgiapp() 
2017-06-10T08:59:23.520969+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 52, in load_wsgiapp 
2017-06-10T08:59:23.520970+00:00 app[web.1]:  return util.import_app(self.app_uri) 
2017-06-10T08:59:23.520970+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/util.py", line 357, in import_app 
2017-06-10T08:59:23.520971+00:00 app[web.1]:  __import__(module) 
2017-06-10T08:59:23.520972+00:00 app[web.1]: File "/app/app.py", line 8, in <module> 
2017-06-10T08:59:23.520972+00:00 app[web.1]:  from konlpy.tag import Twitter; t = Twitter() 
2017-06-10T08:59:23.520973+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/konlpy/tag/_twitter.py", line 72, in __init__ 
2017-06-10T08:59:23.520974+00:00 app[web.1]:  jvm.init_jvm(jvmpath) 
2017-06-10T08:59:23.520974+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/konlpy/jvm.py", line 40, in init_jvm 
2017-06-10T08:59:23.520975+00:00 app[web.1]:  jvmpath = jvmpath or jpype.getDefaultJVMPath() 
2017-06-10T08:59:23.520976+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/jpype/_core.py", line 114, in get_default_jvm_path 
2017-06-10T08:59:23.520977+00:00 app[web.1]:  return finder.get_jvm_path() 
2017-06-10T08:59:23.520977+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/jpype/_jvmfinder.py", line 121, in get_jvm_path 
2017-06-10T08:59:23.520978+00:00 app[web.1]:  jvm = method() 
2017-06-10T08:59:23.520979+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/jpype/_jvmfinder.py", line 164, in _get_from_known_locations 
2017-06-10T08:59:23.520979+00:00 app[web.1]:  for home in self.find_possible_homes(self._locations): 
2017-06-10T08:59:23.520980+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/jpype/_jvmfinder.py", line 95, in find_possible_homes 
2017-06-10T08:59:23.520981+00:00 app[web.1]:  for childname in sorted(os.listdir(parent)): 
2017-06-10T08:59:23.520981+00:00 app[web.1]: OSError: [Errno 2] No such file or directory: '/usr/lib/jvm' 
2017-06-10T08:59:23.521316+00:00 app[web.1]: [2017-06-10 08:59:23 +0000] [9] [INFO] Worker exiting (pid: 9) 
2017-06-10T08:59:23.521493+00:00 app[web.1]: [2017-06-10 08:59:23 +0000] [11] [INFO] Worker exiting (pid: 11) 
2017-06-10T08:59:23.552400+00:00 app[web.1]: Traceback (most recent call last): 
2017-06-10T08:59:23.552442+00:00 app[web.1]: File "/app/.heroku/python/bin/gunicorn", line 11, in <module> 
2017-06-10T08:59:23.552493+00:00 app[web.1]:  sys.exit(run()) 
2017-06-10T08:59:23.552512+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 74, in run 
2017-06-10T08:59:23.552559+00:00 app[web.1]:  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run() 
2017-06-10T08:59:23.552605+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/app/base.py", line 192, in run 
2017-06-10T08:59:23.552667+00:00 app[web.1]:  super(Application, self).run() 
2017-06-10T08:59:23.552685+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/app/base.py", line 72, in run 
2017-06-10T08:59:23.552727+00:00 app[web.1]:  Arbiter(self).run() 
2017-06-10T08:59:23.552769+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/arbiter.py", line 218, in run 
2017-06-10T08:59:23.552834+00:00 app[web.1]:  self.halt(reason=inst.reason, exit_status=inst.exit_status) 
2017-06-10T08:59:23.552851+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/arbiter.py", line 331, in halt 
2017-06-10T08:59:23.552954+00:00 app[web.1]:  self.stop() 
2017-06-10T08:59:23.552972+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/arbiter.py", line 381, in stop 
2017-06-10T08:59:23.553058+00:00 app[web.1]:  time.sleep(0.1) 
2017-06-10T08:59:23.553101+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/arbiter.py", line 231, in handle_chld 
2017-06-10T08:59:23.553166+00:00 app[web.1]:  self.reap_workers() 
2017-06-10T08:59:23.553182+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/arbiter.py", line 506, in reap_workers 
2017-06-10T08:59:23.553314+00:00 app[web.1]:  raise HaltServer(reason, self.WORKER_BOOT_ERROR) 
2017-06-10T08:59:23.553400+00:00 app[web.1]: gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3> 
2017-06-10T08:59:23.748346+00:00 heroku[web.1]: State changed from starting to crashed 
2017-06-10T08:59:36.316423+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=POST path="/" host=afternoon-beach-22534.herokuapp.com request_id=e7341e48-6af5-4d10-8d6d-4a485fdda85c fwd="173.252.124.218" dyno= connect= service= status=503 bytes= protocol=https 
2017-06-10T08:59:53.796217+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=afternoon-beach-22534.herokuapp.com request_id=898717bb-1ce1-4c36-97ef-fa844585effb fwd="59.18.254.244" dyno= connect= service= status=503 bytes= protocol=https 

はHerokuの上word2vec展開しています。 ありがとうございます。

+0

これらのエラーログから、問題は 'konlpy'と' jpype'を含むと思われる - gensimかword2vecません。具体的には、 'jpype'パッケージのコードは、heroku dynoに'/usr/lib/jvm 'ディレクトリを見つけることを期待していますが、そうではありません。だから、 'jpype'をherokuで動作させる方法や、Pythonビルドパックに加えてJVMをインストールする方法のヒントを探したいかもしれません。 – gojomo

+0

ありがとう! JVMのインストールがこの問題を解決するようです。それでも、PythonベースのサーバーにJVMをインストールする方法はわかりません。 requirements.txtにopenjdkを追加するだけでJVMをインストールできますか?ありがとうございました:) –

+0

(require.txtによって駆動される)Pythonインストールルーチンは、通常、Python以外のパッケージ(JVMなど)をインストールしません。 Heroku dynoにJVMを自動インストールするためのアイデアについては、 'jpype'とHerokuのヘルプ領域を検索する必要があります。 – gojomo

答えて

0

私はHerokuでjpypeを使用して同じ問題を抱えていました。私はHeroku 'Settings'ダッシュボードからJavaビルドパックを追加して動作させました。次に、pom.xmlファイルをリポジトリに追加し、hereというコードを入力しました。その後、再デプロイし、jpypeが動作しているはずです。 HerokuはあなたがPythonアプリケーションとJavaアプリケーションの両方を配備していると考えているので、あなたのJavaコードを処理するためにMavenを呼び出します(存在しません:D)pom.xmlは配備中にMavenに何かを与えますpom.xmlは存在しないか、本当に空です)、アプリがライブになっても最終的には何もしません。少なくとも、私はこれが起こっていると思います。いずれにしても、jpypeがアクセスするにはJVMが必要です。私はこれが遅いことを知っていますが、私は今日この問題に遭遇しました。

乾杯、

ティム

関連する問題