在R中部署闪亮的应用程序时出现问题。将虚拟环境与网状结构一起使用以在应用程序中运行python代码。错误-虚拟环境:权限被拒绝

时间:2019-03-04 05:33:14

标签: keras shiny reticulate pyvenv

我正在使用R在Shiny中创建一个应用程序。我在应用程序中使用的是python模型,因此我使用reticulate包来运行它,并在与该应用程序相同的文件夹中运行虚拟环境访问python3。它在本地运行良好,但是一旦部署它,我的日志中就会显示错误

  

venv / bin / python:权限被拒绝

(venv是我的虚拟环境)。

我尝试将包含.Rprofile的{​​{1}}文件添加到应用程序的文件夹中。另外,如果有帮助,Python组件将使用source venv/bin/activate包。我还将所有必需的软件包都下载到了我的虚拟环境中。

我还运行了keras而不是use_python("venv/bin/python", required = TRUE),后者也可以在本地运行,但是一旦部署它,我会遇到与上述相同的错误。

1 个答案:

答案 0 :(得分:1)

此问题已解决!解决方案是创建虚拟环境并在R代码文件中下载必要的软件包。如果其他人也有同样的问题,则这里是相关代码,用于设置python虚拟环境,以便能够将其部署到Shinyapps.io:

virtualenv_create(envname = "python_environment", python= "python3")
virtualenv_install("python_environment", packages = c('keras', 'pandas','numpy','scipy','scikit-learn', 'tensorflow'))
reticulate::use_virtualenv("python_environment", required = TRUE)

为清楚起见,特定的软件包正是我的python代码所需要的。

此外,如果出现错误reticulate is in use, but python was not specified

,则可能需要运行以下行(然后注释掉以进行部署),以使用旧版本的rsconnect:
devtools::install_github("rstudio/rsconnect", ref='737cd48')