ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

为 Python 和 Shinylive 应用程序容器化 Shiny

2022-11-11 14:14:41  阅读:445  来源: 互联网

标签:python 框架 alpha 数据 浏览器 应用 软件包


Shiny for Python 为基于 Python 的数据和科学堆栈构建的 Web 应用程序带来了简单的交互性。容器化 Py-Shiny 应用程序是部署到各种托管选项(包括静态托管)的下一步。

Shiny 是一个框架,可以轻松构建交互式 Web 应用程序。Shiny 是 10 年前作为 R 包推出的。在他的 10 周年主题演讲中,Joe Cheng 在 2022 年 RStudio 大会上宣布了Shiny for Python。Python程序员现在可以尝试使用Shiny来创建交互式数据驱动的Web应用程序。Shiny是其他框架的替代品,如Dash或Streamlit。

⚠️

Shiny for Python 目前处于 Alpha 阶段。它可能不稳定,并且 API 可能会更改。我们很高兴听到您的反馈,但请不要将其用于生产应用程序!

与R Shiny应用程序类似,Shiny for Python可以使用RStudio Connect,Shiny Server Open Source和 Shinyapps.io 进行部署。托管数据应用网站专用的替代托管选项要求 Python Shiny 应用在容器内运行。在这篇文章中,我们将回顾如何使用Docker来容器化Shiny for Python应用程序。

闪亮的应用模板

我们遵循入门指南(另请参阅安装指南)。您可以安装闪亮的withor。在这里我们将使用。以下命令生成我们将使用的应用文件:pipcondapip

pip install shiny
shiny create app
shiny run --reload app/app.py

# INFO:     Will watch for changes in these directories: ['/Users/Username/app']
# INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
# INFO:     Started reloader process [57404] using StatReload
# INFO:     Started server process [57406]
# INFO:     Waiting for application startup.
# INFO:     Application startup complete.

转到浏览器以尝试显示滑块和文本输出的应用程序,返回滑块输入值的双倍(当然):http://127.0.0.1:8000N=n

最简单的 Shiny for Python 示例。

最简单的 Shiny for Python 示例。

使用 Ctrl+C 退出应用。

包含绘图的示例应用

我们将使用带有绘图示例的应用程序。在文本编辑器中打开文件并将以下内容复制到其中:app/app.py

from shiny import App, render, ui
import numpy as np
import matplotlib.pyplot as plt

app_ui = ui.page_fluid(
    ui.h2("Histogram with Shiny for Python!"),
    ui.layout_sidebar(
        ui.panel_sidebar(
            ui.input_slider("n", "N", 0, 100, 20),
        ),
        ui.panel_main(
            ui.output_plot("plot"),
        ),
    ),
)


def server(input, output, session):
    @output
    @render.plot(alt="A histogram")
    def plot():
        np.random.seed(19680801)
        x = 100 + 15 * np.random.randn(437)
        plt.hist(x, input.n(), density=True)


app = App(app_ui, server, debug=True)

在与 相同的目录中创建文件,内容如下:app/requirements.txtapp.py

shiny>=0.2.7
numpy>=1.23.3
matplotlib>=3.6.0

现在用于安装剩余的软件包。然后再次加载应用程序并再次访问您的浏览器。pip install --no-cache-dir --upgrade -r app/requirements.txtshiny run --reload app/app.pyhttp://127.0.0.1:8000

您将看到新应用程序,其情节看起来与经典的Rhello Shiny应用程序非常相似:

闪亮的蟒蛇应用程序与情节。

闪亮的蟒蛇应用程序与情节。

The Dockerfile

如果您在启动应用程序后查看打印输出,您会注意到 Shiny 在引擎盖下使用Uvicorn。这是使用FastAPI 部署容器化应用的常用方法。

标签:python,框架,alpha,数据,浏览器,应用,软件包
来源:

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有