将应与bokeh serve --show
一起运行的应用程序部署给其他人的首选方式是什么?
我只发现2014年topic有人为此目的使用了Vagrant。有更好的选择吗?
更新
我需要“离线”模式,以便其他人可以在其计算机上启动它,而不是通过Web访问。
答案 0 :(得分:1)
因此,这取决于您所构建的结构-是将其与诸如flask之类的东西组合在一起,还是只希望显示实际图块。
首先,the docs are great,但一般来说:
1)仅散景图,仅此而已:
一样在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文件。