2016-07-17 1 views
6

私はherokuを介して対話的なbokehフィギュアを提供しようとしています。私が務めようとしている姿は本質的にはこれと同じです(examplecode)。私はbokehherokuの両方に新しいので、私はかなり基本的な何かを欠いていることをかなり確信しています - 私は何をしようとしているのはかなり簡単であると思います。herokuのインタラクティブなbokehの図形を扱う

まず、bokeh serve --show myappコマンドを使用して自分の図をローカルに配信できます。ここで、myappは、bokehフィギュアを含むpythonモジュールの名前です。 --showフラグは、図が作成され、サーバーが実行されているときに、bokehにブラウザウィンドウを開くように求めるだけであることに注意してください。

次に、herokuアカウントを設定して、Heroku - Getting Started With Python tutorialの手順に従って最初のアプリを作成しました。私のgitリポジトリには、myapprequirements.txtファイル、Procfileが含まれています。

悲しいかな、何かがうまくいかず、私は困惑しています。私はProcfileでいくつかのオプションを試してみましたが、どれもうまくいきませんでした。

web: bokeh serve --port $PORT myapp 

その作業が必要です。bokeh serve ...コマンドは、サーバーを起動するので、このようになりますProfileは、トリックを行うべきではないのですか?おそらく私は何かが欠けていると私はflask私のbokehアプリを包むアプリを作成する必要があるが、私が言うことができる限り、それは必要ないと思われる。たぶん誰かが、これらのステップをすべて一緒にする素敵なチュートリアルを知っているかもしれませんが、まだ完全なものを見つけていません。

更新: 私は以下のログを貼り付けています:herokuこの--host whitelist号はどのように扱いますか?

2016-07-17T05:00:46.513139+00:00 heroku[slug-compiler]: Slug compilation started 
2016-07-17T05:00:46.366909+00:00 heroku[api]: Deploy 9b63d8a by [email protected] 
2016-07-17T05:00:46.367087+00:00 heroku[api]: Release v4 created by [email protected] 
2016-07-17T05:00:46.624937+00:00 heroku[web.1]: State changed from crashed to starting 
2016-07-17T05:00:55.188978+00:00 heroku[web.1]: Starting process with command `bokeh serve --port=39665 myapp.py` 
2016-07-17T05:00:57.876287+00:00 app[web.1]: 2016-07-17 05:00:57,876 Starting Bokeh server on port 39665 with applications at paths ['/myapp'] 
2016-07-17T05:00:57.868758+00:00 app[web.1]: 2016-07-17 05:00:57,868 Starting Bokeh server version 0.12.0 
2016-07-17T05:00:57.876378+00:00 app[web.1]: 2016-07-17 05:00:57,876 Starting Bokeh server with process id: 3 
2016-07-17T05:00:58.800309+00:00 heroku[web.1]: State changed from starting to up 
2016-07-17T05:00:59.970326+00:00 app[web.1]: 2016-07-17 05:00:59,970 Rejected connection from host 'myapp.herokuapp.com' because it is not in the --host whitelist 
2016-07-17T05:00:59.973495+00:00 app[web.1]: 2016-07-17 05:00:59,970 403 GET/(XX.XX.XXX.XX) 1.29ms 
2016-07-17T05:00:59.975282+00:00 heroku[router]: at=info method=GET path="/" host=myapp.herokuapp.com request_id=xxxxxxxxxxxxx fwd="XX.XX.XX.XX" dyno=web.1 connect=1ms service=4ms status=403 bytes=219 

答えて

8

私は最終的にこれを動作させることができて以来、私自身の質問に答えようとしています。

私はこのように見えたProcfileになってしまった:

web: bokeh serve --port=$PORT --host=myapp.herokuapp.com --host=* \ 
    --address=0.0.0.0 --use-xheaders myapp.py 

(私の知る限り)を意味し、これらの引数のどのようなすべての背景のビット:

--port:指定bokehサーバがリッスンするポートは、$PORTheroku

--host=myapp.herokuapp.com--host=*によって設定されますように、ホスト名を指定しますmyapp.heroku...の場合、ワイルドカードはすべてのホストを受け入れることができるようになっています。私はこれがもう必要ではないと確信しています。

--address=0.0.0.0:これは、bokehに、それがどのIPアドレスであるかを調べるように指示していると思います。

--use-xheaders:私はこれを編集したり、このアプローチに問題がある場合は、より知識のあるユーザーが答える受け入れて幸せリモートIPとURIスキーム/プロトコル

を上書きするbokehの原因となります。

+0

フラスコで展開できましたか?私はローカルにフラスコのアプリケーションを持っていますが、それをHeroku上で動作させる方法を理解することはできません。 [bokeh_plot.py](https://www.dropbox.com/s/ohaa388wpmkvpxt/bokeh_plot.py?dl=0)と[app.py](https://www.dropbox.com/s/)があります。 owla19e58hgijgd/app.py?dl = 0)。 スクリプトapp.pyには、bokehサーバが起動されているサブプロセスが含まれています。アプリケーションは単に 'python app.py'を実行するだけで起動でき、アプリケーションはlocalhost:5000でレンダリングされます。今、私はそれがHerokuで動作するようにbokeh_subprocessを変更する方法を知らない。 – multigoodverse

+0

セットアップでフラスコのアプリが実行されることはありませんでした。私はちょうど 'bokeh serve'コマンドを使い、'フラスコ 'のステップをスキップすることができました。 – jhamman

+0

あなたのbokehチャートに他のコンテンツを追加する必要がある場合は、Webフレームワークが必要です。 – multigoodverse

関連する問題