如何运送bokeh服务器应用程序?

时间:2018-06-27 04:29:59

标签: python deployment vagrant bokeh

将应与bokeh serve --show一起运行的应用程序部署给其他人的首选方式是什么?

我只发现2014年topic有人为此目的使用了Vagrant。有更好的选择吗?

更新

我需要“离线”模式,以便其他人可以在其计算机上启动它,而不是通过Web访问。

2 个答案:

答案 0 :(得分:1)

因此,这取决于您所构建的结构-是将其与诸如flask之类的东西组合在一起,还是只希望显示实际图块。

首先,the docs are great,但一般来说:

1)仅散景图,仅此而已:

a)像this question.

一样在Heroku上部署

b)通过反向代理在某些Web服务器上进行部署。链接的文档上提供了更详细的示例,但这是nginx配置的基本示例,假定您正在运行类似bokeh serve myapp.py --port 5100的内容:

server {
    listen 80 default_server;
        server_name _;
        access_log  /tmp/bokeh.access.log;
        error_log   /tmp/bokeh.error.log debug;

    location / {
        proxy_pass http://127.0.0.1:5100;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_http_version 1.1;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host:$server_port;
        proxy_buffering off;
    }

}

(可能)如果需要ssl,也有一些示例。

2)与Flask / Django / Whatever集成:

在这种情况下,您不能使用Heroku,因为bokeh(龙卷风)服务器和flask / etc服务器都需要分别运行,而Heroku不支持此操作,因此除非您想使用一个配置两个独立的应用程序将每个图片都用完。

这使您拥有良好的反向代理娱乐时间。区别在于,您必须同时运行两个进程(例如,与主管一起运行),然后设置您的配置文件,以将这些请求发送到需要的地方。如果是这种情况,the mailing list是获取详细信息的最佳选择,因为这将取决于您的需求。

答案 1 :(得分:0)

用pyinstaller(http://jishichao.com/2017/01/10/package-a-python-program-to-a-single-executable-file/)打包似乎是正确的方法。

使用pyinstaller打包bokeh时有一些细微差别。凭单#1898(https://github.com/pyinstaller/pyinstaller/issues/1898)列出了其中的一种,并提供了一些如何克服它的线索。它在一定程度上有所帮助,但是我还没有使用这种方法制作出功能齐全的exe文件。