将bokeh serve --show
运行的应用程序部署到其他人的首选方法是什么?
我只找到了一个2014年的topic,有人使用Vagrant来达到这个目的。还有更好的选择吗?
更新
我需要“离线”模式,以便其他人可以在他/她的计算机上启动它,而不是网络访问。
所以它取决于你正在建造的结构 - 是否与烧瓶之类的结合,或者你只是希望实际的情节可见。
首先,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作为散景(龙卷风)服务器和烧瓶/等服务器都需要单独运行而Heroku只是不支持这个,所以除非你想配置2个独立的应用程序,每个应用程序运行一个出了图片。
这让你有很好的反向代理乐趣。这里的区别在于您必须运行两个进程(例如,使用supervisor),然后设置配置文件以将这些请求发送到需要的位置。如果是这种情况,the mailing list是您获取详细信息的最佳选择,因为它将取决于您的需求。
用pyinstaller(http://jishichao.com/2017/01/10/package-a-python-program-to-a-single-executable-file/)打包它似乎是正确的方法。
使用pyinstaller打包散景时有一些细微差别。机票#1898(https://github.com/pyinstaller/pyinstaller/issues/1898)列出了其中一个并提供了一些如何克服它的线索。它在某种程度上有所帮助,但我还没有成功使用这种方法制作一个功能齐全的exe文件。