Python >> Tutoriel Python >  >> Python Tag >> Bokeh

Servir une figure bokeh interactive sur heroku

Je vais juste répondre à ma propre question car j'ai finalement réussi à faire fonctionner cela et personne d'autre n'y a encore répondu.

Je me suis retrouvé avec un Procfile qui ressemblait à ceci :

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

un peu de contexte sur ce que signifient tous ces arguments (pour autant que je sache):

--port :spécifie le port que le bokeh le serveur écoutera, $PORT est défini par heroku

--host=myapp.herokuapp.com et --host=*  :spécifiez le nom d'hôte sous la forme myapp.heroku... , le caractère générique est censé permettre à tous les hôtes d'être acceptés. Je ne suis plus sûr que cela soit nécessaire.

--address=0.0.0.0 :Je pense que cela indique bokeh pour déterminer par lui-même sur quelle adresse IP il se trouvera.

--use-xheaders :provoque bokeh pour remplacer le schéma/protocole IP et URI distant

Je suis heureux d'apporter des modifications à cela ou d'accepter une réponse d'utilisateurs plus avertis s'il y a des problèmes avec cette approche.


La réponse acceptée n'a pas fonctionné pour moi telle qu'elle est écrite (probablement en raison d'une différence de version de bokeh), mais comme c'est toujours l'un des meilleurs résultats pour cette question, voici ma modification mineure qui a fonctionné :

web: bokeh serve --port=$PORT --num-procs=0 --allow-websocket-origin=myapp.herokuapp.com --address=0.0.0.0 --use-xheaders myapp.py