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

图8 – 分享的Shiny for Python应用(2)
我们现在有了一个带有红色直方图条的Shiny for Python应用。
Shinylive还允许您将Shiny for Python应用部署到静态网页托管服务。此功能目前处于实验阶段,因此细节可能会在未来发生变化。
此部署选项本质上将允许您将您的应用托管在Netlify或GitHub Pages等服务上。还有一个Posit Connect选项,但这些服务需要一整篇文章来详细介绍。
第一步是安装 Python包。
安装完成后,您可以使用Shinylive提供的工具来准备和打包您的应用以供部署。这通常涉及到创建一个包含所有应用文件(包括Python代码、数据文件和任何静态资源)的文件夹,并使用Shinylive的命令行工具来生成一个静态网站。
然后,您可以将这个静态网站部署到任何支持静态文件的Web服务器上,如Netlify、GitHub Pages或您自己的服务器。
这是您将看到的输出:
图9 – 安装Shinylive Python包
安装完成后,您可以使用命令创建一个新的Shiny for Python应用程序。我们将我们的应用程序命名为:
您应该看到以下输出:
图10 – 创建Shiny for Python应用
最后,您现在可以使用来导出Shiny for Python应用程序:
这将创建一个新的目录,其中包含静态应用的内容:
图11 – 导出Shiny for Python应用以进行静态服务
现在我们已经导出了应用,接下来要做的就是通过Web服务器运行它。
假设您导出的Shiny for Python应用存储在文件夹中。
如果一切正常,您将看到一条消息,表明应用已在本地8008端口上运行:
图12 – 运行Shiny for Python应用
现在,您可以打开并在本地看到您的应用正在运行:
图13 – 本地运行的Shiny for Python应用
您可以通过打开本地Shinylive编辑器来进一步操作。只需访问
,您就会看到一个熟悉的窗口:
图14 – 本地Shinylive编辑器
Shinylive让分享Python Shiny应用变得更加容易。您可以在线编辑器中完成所有操作,或者选择使用GitHub gist以获得更多控制权。此外,您还可以将应用本地运行或部署在任何静态网站托管服务上,例如GitHub页面。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/27110.html