原文链接:https:///?p=36205随着Web技术的快速发展,越来越多的数据科学家和开发人员倾向于使用Web应用程序进行数据分析和可视化(点击文末“阅读原文”获取完整代码数据)。 Shiny for Python作为一种流行的Web应用程序框架,为Python开发人员提供了便捷的数据展示和交互工具。然而,在实际应用中,由于硬件资源或成本限制,有时无法直接使用服务器进行部署。本文旨在探讨在无服务器环境下,如何有效地部署和运行Shiny for Python应用程序。 通过Shiny,我们的分析师可以快速地帮助客户构建出具有交互性和动态性的数据可视化应用。然而,在部署这些应用时,通常需要服务器环境来托管和运行。但在某些情况下,如个人项目或小型团队项目,可能无法直接获取到服务器资源。因此,研究无服务器环境下的Shiny for Python应用部署方法具有重要意义。 Shiny for Python的Shinylive简介那么,Shinylive到底是什么?它是一个实验性功能,允许您的Shiny for Python应用程序在Web浏览器中运行。这意味着您不需要为运行Python而单独设置服务器。 通过Shinylive,Python和Shiny在Web浏览器中运行,这代表了应用程序的客户端和服务器。 这得益于两项技术:
使用Shinylive部署的主要优势在于计算是在客户端完成的。在许多情况下,这对于作为Shiny开发者的您来说是有益的,因为客户端浏览器通常比服务器拥有更强大的计算能力。当您将应用程序扩展到数十或数百个并发用户时,这一点尤为重要。 另一方面,您也可以将其视为一个缺点。例如,有时您需要进行需要大量计算且需要强大服务器的任务。在这种情况下,将计算转移到客户端并不是最佳方案。 下面我们将探讨一些额外的优势和劣势。 使用Shinylive的优势以下是使用Shinylive部署带来的一些明确且无需多言的优势:
使用Shinylive的劣势每项优势都有其劣势,Shinylive也不例外。让我们来看看其中的一些:
如何使用Shinylive编辑器分享Shiny for Python应用本节将指导您如何使用和分享通过Shinylive编辑器创建的Shiny for Python应用。 编写Shiny for Python应用程序首先,我们需要一个应用程序。它基本上绘制了一个从正态分布中抽取的值的直方图。用户可以更改箱数(bin count),图表将自动更新。 您可以将此代码粘贴到Shinylive编辑器中。只需替换已存在的代码并点击运行按钮。 接下来,在右侧您将看到: 图1 – Shiny for Python编辑器(1) 正如之前所承诺的,您可以通过侧边栏中的滑块来更改条形的数量: 图2 – Shiny for Python编辑器(2) 这就是我们的应用程序。虽然它并不复杂,但足以满足本文后续部分的需求。 点击标题查阅往期内容 左右滑动查看更多 01 02 03 04 分享Shiny for Python应用程序您是否注意到Shinylive编辑器右上角有一个“分享”按钮? 图3 – 创建可分享链接 点击它将会打开一个模态窗口,类似于以下这个: 图4 – 编辑器和应用URL 您可以分享编辑器URL,这意味着用户将能够访问代码并修改它,或者您可以分享应用URL,这意味着用户将只能看到渲染后的应用程序。 当您分享应用URL时,我们建议您勾选“隐藏头部”复选框,以便不显示给用户蓝色的Shiny for Python标题。 您可以复制这两个URL中的任何一个,并在新的浏览器窗口中打开它们。对于应用URL,您将看到以下界面: 图5 – 已分享的Shiny for Python应用程序 请注意,这些URL只在一个方面有所不同——第一个URL包含 接下来,让我们探索如何使用Shinylive和GitHub部署Shiny for Python应用程序的选项。 如何使用Shinylive和GitHub分享Shiny for Python应用程序答案很简单——GitHub Gists。接下来,我们将引导您完成创建Gist并在Shinylive中使用的过程。 创建GitHub Gist如果您有GitHub账户,可以点击右上角的加号按钮来创建一个新的Gist。创建完成后,您的Gist看起来应该是这样的: 图6 – Shiny for Python应用的GitHub gist 我们唯一做的更改是将直方图的条形颜色从 通过GitHub Gist分享Shiny for Python应用查看gist的URL。您只需要ID部分,即用户名之后的部分: 图7 – GitHub gist URL 您可以复制这个ID部分,并将其粘贴到以下URL的末尾:
现在,您可以打开这个URL来验证连接是否工作正常。 图8 – 分享的Shiny for Python应用(2) 我们现在有了一个带有红色直方图条的Shiny for Python应用。 在任何地方部署Shiny for Python应用Shinylive还允许您将Shiny for Python应用部署到静态网页托管服务。此功能目前处于实验阶段,因此细节可能会在未来发生变化。 配置Shinylive 第一步是安装 安装完成后,您可以使用Shinylive提供的工具来准备和打包您的应用以供部署。这通常涉及到创建一个包含所有应用文件(包括Python代码、数据文件和任何静态资源)的文件夹,并使用Shinylive的命令行工具来生成一个静态网站。 然后,您可以将这个静态网站部署到任何支持静态文件的Web服务器上,如Netlify、GitHub Pages或您自己的服务器。 这是您将看到的输出:
图9 – 安装Shinylive Python包 安装完成后,您可以使用 您应该看到以下输出:
图10 – 创建Shiny for Python应用 最后,您现在可以使用 这将创建一个新的
图11 – 导出Shiny for Python应用以进行静态服务 现在我们已经导出了应用,接下来要做的就是通过Web服务器运行它。 本地应用服务假设您导出的Shiny for Python应用存储在 如果一切正常,您将看到一条消息,表明应用已在本地8008端口上运行: 图12 – 运行Shiny for Python应用 现在,您可以打开 图13 – 本地运行的Shiny for Python应用 您可以通过打开本地Shinylive编辑器来进一步操作。只需访问
,您就会看到一个熟悉的窗口: 图14 – 本地Shinylive编辑器 Python Shiny的Shinylive总结Shinylive让分享Python Shiny应用变得更加容易。您可以在线编辑器中完成所有操作,或者选择使用GitHub gist以获得更多控制权。此外,您还可以将应用本地运行或部署在任何静态网站托管服务上,例如GitHub页面。 |
|