运行仪表板

概述

有多种方式可以运行 Shiny for Python 交互式文档:

  1. 在 VS Code 中使用 Quarto: Preview 命令。
  2. 使用 quarto preview 命令行界面与任何编辑器。
  3. 将它们部署到服务器以供更广泛的受众使用。

我们将在本文中深入探讨所有这些场景。

Shiny 前置要求

为了在 Quarto 文档中使用 Shiny,你需要最新版本的 shiny (>=0.9.0) 和 shinywidgets (>=0.3.1) 包。你可以通过以下命令安装这些包的最新版本:

pip install --upgrade shiny shinywidgets

VS Code

Quarto VS Code 扩展 提供了预览 Shiny 交互式文档的集成支持(就像您通常对静态文档所做的那样,使用 Quarto: Preview 命令):

VS Code 的屏幕截图,左侧窗格中打开文件 shiny.qmd。右侧是一个标记为 Quarto Preview 的窗格,显示实时仪表板。

请注意,您需要最新版本的 VS Code 扩展(v1.105.0 或更高版本)才能预览 Shiny 交互式文档。

命令行

如果您使用的是其他笔记本或文本编辑器,您也可以通过 quarto preview 从命令行预览 Shiny 交互式文档。这对于笔记本(.ipynb)和纯文本 Markdown(.qmd)同样适用。例如:

终端
quarto preview example.ipynb
quarto preview example.qmd

preview 命令有许多选项可以控制文档服务器的端口和主机,以及是否自动为正在运行的文档打开浏览器。您可以通过 quarto preview help 了解更多关于这些选项的信息。

如果您想在不使用 quarto preview 功能(即当文档更改时自动重新渲染)的情况下提供您的文档,可以使用 quarto serve 命令:

终端
quarto serve example.qmd

部署

Shiny交互式文档是使用quarto render创建的普通Shiny应用程序。事实上,你根本不需要Quarto来提供交互式文档,相反,你可以直接使用shiny run运行由quarto render生成的应用程序:

Terminal
quarto render example.qmd
shiny run app.py

你部署的应用程序将包含由quarto render生成的HTML文档和app.py脚本:

example.html
example_files/
app.py

有关在各种环境中部署Shiny应用程序的信息,请参阅以下文档:

目标 描述
shinyapps.io 云托管服务
Hugging Face 云托管服务
Shiny Server 开源应用程序服务器
Posit Connect 商业发布平台
其他服务 自定义服务器/托管环境

你还可以在无服务器配置中部署交互式Shiny文档(其中Python通过Pyodide在浏览器中运行)。退休模拟是一个展示此工作流程的示例。

调试

您可以通过调试生成的 .py 应用程序文件(例如 hello-app.py)来运行 Shiny 文档的交互式调试会话。使用编辑器右上角的 Debug Shiny App 菜单命令启动调试会话:

VS Code 的屏幕截图,打开文件 hello-app.py。在右上角,从运行下拉菜单打开的菜单中选择了 Debug Shiny App 项目。

重要提示

您正在调试的文件(例如 hello-app.py)是从您的交互式文档生成的。因此,您不应直接编辑此文件(因为它会在下一次渲染时被覆盖),而应编辑生成它的源文档(例如 hello.qmd)。

了解更多

要了解更多关于 Shiny for Python 交互式文档的信息,请参阅以下文章:

  • 入门指南 解释了 Shiny 交互式文档的基础知识。

  • 组件浏览器 列出了可用的 Shiny 输入和输出,并提供了您可以复制并粘贴到仪表板中的代码片段。

  • 输入布局 描述了各种布局 Shiny 输入的方式(侧边栏、输入面板、将输入直接附加到卡片等)。

  • 执行上下文 深入探讨了不同代码单元运行的时机(例如渲染与服务)。

  • Shiny for Python 提供了所有可用 UI 和输出小部件的深入文档,以及关于事物工作原理的概念性讨论。