如何将闪亮的应用程序作为独立应用程序运行?

Posted

技术标签:

【中文标题】如何将闪亮的应用程序作为独立应用程序运行?【英文标题】:How to run a shiny app as a standalone application? 【发布时间】:2021-11-29 13:35:22 【问题描述】:

我有一些闪亮的应用程序,我想执行并使其成为独立的应用程序(如果它可以通过 chrome 打开,那就太棒了)。 我无法将应用程序上传到网络,我也希望没有 R studio 或 R 的同事 将使用这个应用程序。 因为安全公司——我不能下载除 R 包以外的任何软件。 我在这里看到了一些解决方案,但它们都包含任何软件下载。

【问题讨论】:

R (大部分)是一种解释性语言。然后你可以做一个批处理文件来运行你的脚本 ***.com/questions/6788928/… 。但是您需要 R 二进制文件来运行 R 脚本。但是,您可以根据需要将它们(以及闪亮所需的软件包)放在本地网络上,并在批处理文件中调用本地地址 目前没有(简单的)方法可以将 R 编译为自主可执行文件***.com/questions/14096520/… 不幸的是,您可能不得不与您的 IT 部门合作。如果你能说服他们给你一个 RShiny 服务器,那将是理想的。您可以在一个非常轻量级的 Linux 机器上运行(免费)社区版,而且设置起来并不特别困难。您只需要一些服务器空间(大概是从现有的一些虚拟机中分割出一个虚拟机),然后您就可以在防火墙内托管 Shiny 应用程序。这不会是一笔巨大的开支。否则,你可能会倒霉。或者只是让您的公司为这些其他同事安装 R 和 RStudio,并为他们提供启动脚本。 【参考方案1】:

我对这个问题做了一些研究。评论者基本上是正确的:您需要以某种方式使用 R 二进制文件,无论是便携式 R 还是 R 服务器。但是有一些解决方案可以让它与您的代码捆绑在一起,并向您的用户隐藏详细信息。

    On 选项是将您的应用程序与 一个可移植的 R 到像 Electron 这样的容器应用程序中。 electron-quick-start 项目尝试这样做。 RInno package 提供了将您的应用程序和 R 可移植到安装程序应用程序的功能。每个用户在他们的系统上运行一次安装程序,它将安装您的应用程序、包和代码。但最终用户可能看不到与其他应用程序的区别。他们在开始菜单中获得一个链接,仅此而已。我成功地做到了。但它并没有开箱即用。我不得不在几个地方手动调整输出。 第二种容器解决方案适用于 docker。这就是ShinyProxy 所做的。另请参阅blog。 包shinyShortcut(我引用)“将生成一个可执行文件,直接在用户的默认浏览器中运行闪亮的应用程序”。

重要提示:我还没有测试过其中的大部分。通过查看解决方案,我经常感觉到这些解决方案可能会使发布变得有些复杂,因为总是涉及手动步骤。

【讨论】:

以上是关于如何将闪亮的应用程序作为独立应用程序运行?的主要内容,如果未能解决你的问题,请参考以下文章

如何让 dockerize 闪亮的应用程序从本地驱动器加载数据(在主机上)

如何安排闪亮的模块文件,以便它们在闪亮的服务器上运行?

如何通过 URL 将参数传递给闪亮的应用程序

如何使用shinyjs从闪亮的应用程序物理打印png?

使用 shinyAppDir 在 Rmarkdown 中嵌入超过 1 个闪亮的应用程序

将数据拖放到闪亮的应用程序中