【问题标题】:How to publish Shiny applications that use python modules如何发布使用 python 模块的 Shiny 应用程序
【发布时间】:2021-09-14 10:56:33
【问题描述】:

我正在尝试发布一个使用我编写的模块的 Shiny 应用程序。此 Python 模块使用 seleniumpandasurllib3timere。首先,我尝试创建一个 virtualenv 并将 virtualenv 与应用程序一起发布。我不断收到 ModuleNotFoundError 的 selenium(selenium 是我导入的第一个库)。然后经过一些阅读,我发现我需要在 shinyapps 中创建一个虚拟环境。所以,我的应用程序开头的代码现在看起来像这样:

library(shiny)
library(tidyverse)
library(DescTools)
library(lubridate)
library(googlesheets4)

# Import python module scrapeinsolvencyinsider.py
reticulate::virtualenv_create(envname="statcanEnv", python="python3", version=3.8)
reticulate::virtualenv_install("statcanEnv", packages=c("pandas", "selenium", "urllib3"))
reticulate::use_virtualenv("statcanEnv", required=TRUE)
sii <- reticulate::import("scrapeinsolvencyinsider")

我又收到了ModuleNotFoundError:

我的问题是,如何部署使用 Python 模块的 Shiny 应用程序?

另外,我还需要一种在 shinyapps.io 上安装 ChromeDriver 的方法。

【问题讨论】:

    标签: r shiny reticulate


    【解决方案1】:

    我找到了一个解决方案,感谢this post,它指的是这个链接:https://github.com/ranikay/shiny-reticulate-app/blob/master/.Rprofile

    我配置了我的 .Rprofile,只更改了环境名称和 python 版本。然后我保存它并将它与我的应用程序一起发布。我还对我的应用进行了一些更改:

    library(shiny)
    library(tidyverse)
    library(DescTools)
    library(lubridate)
    library(googlesheets4)
    
    # Import python module scrapeinsolvencyinsider.py
    reticulate::virtualenv_create(envname="statcanEnv", packages=c("pandas", "selenium", "urllib3", "chromedriver-py==91.0.4472.19"))
    sii <- reticulate::import("scrapeinsolvencyinsider")
    

    现在我的应用按预期部署:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-21
      • 1970-01-01
      • 1970-01-01
      • 2021-06-28
      • 1970-01-01
      • 1970-01-01
      • 2017-05-01
      • 2018-10-24
      相关资源
      最近更新 更多