Sto tentando di fornire una cifra interattiva bokeh
tramite heroku. La figura che sto cercando di avere è essenzialmente equivalente a questa (example, code). Sono nuovo sia per lo bokeh
sia per lo heroku
quindi sono quasi certo che mi manca qualcosa di piuttosto semplice - penso che quello che sto cercando di fare dovrebbe essere abbastanza semplice.Visualizzazione di figura del bokeh interattiva su heroku
In primo luogo, posso servire la mia figura localmente usando il comando bokeh serve --show myapp
. Dove myapp
è il nome del modulo python che include la figura bokeh
. Notare che il flag --show
richiede solo bokeh
di aprire una finestra del browser una volta che la figura è stata creata e il server è in esecuzione.
Successivamente, ho impostato un account heroku
e ho creato la mia prima app, seguendo i passaggi nello Heroku - Getting Started With Python tutorial. Il mio repository git include myapp
, un file requirements.txt
e Procfile
.
Ahimè, qualcosa non funziona e sono perplesso. Ho provato un sacco di opzioni diverse nel mio Procfile
e nessuno ha funzionato. Poiché il comando bokeh serve ...
avvia un server, non dovrebbe un Profile
che assomiglia a questo fare il trucco:
web: bokeh serve --port $PORT myapp
Nel caso che il lavoro
? Forse mi manca qualcosa e ho bisogno di creare un'applicazione flask
che avvolge la mia app bokeh
ma, per quanto posso dire, non sembra necessario. Forse qualcuno conosce un bel tutorial che riunisce tutti questi passaggi insieme, non ne ho ancora trovato uno completo.
Aggiornamento: Sto incollando un po 'dei miei heroku
tronchi di seguito. Come gestisci questo problema --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
Sei riuscito a disporlo con il pallone? Ho localmente un'applicazione di una fiaschetta funzionante, ma non riesco a capire come farlo funzionare su Heroku. Ecco [bokeh_plot.py] (https://www.dropbox.com/s/ohaa388wpmkvpxt/bokeh_plot.py?dl=0) e [app.py] (https://www.dropbox.com/s/ owla19e58hgijgd/app.py? dl = 0) contenente il codice del pallone. Script app.py contiene un sottoprocesso in cui è avviato il server bokeh in modo che l'applicazione possa essere avviata semplicemente eseguendo 'python app.py' e l'app sia resa correttamente in localhost: 5000. Ora, non so come modificare bokeh_subprocess per farlo funzionare su Heroku. – multigoodverse
Non ho mai avuto un'app che funziona con il mio setup. Ho appena usato il comando 'bokeh serve' ed è stato possibile saltare il passaggio' flask'. – jhamman
Vedo, ma è necessario un framework web se è necessario aggiungere altri contenuti lungo il grafico bokeh, giusto? – multigoodverse