首页 > 解决方案 > 在 R 中部署闪亮的应用程序时出现问题。使用带有网状结构的虚拟环境在应用程序中运行 python 代码。错误——虚拟环境:权限被拒绝

问题描述

我正在使用 R 在 Shiny 中创建一个应用程序。我在 python 中有一个模型,我在应用程序中使用它,所以我使用reticulate包来运行它,并在与应用程序相同的文件夹中使用虚拟环境来访问python3。它在本地工作得很好,但是一旦我部署它,我就会在日志中看到一个错误,上面写着

venv/bin/python:权限被拒绝

(venv 是我的虚拟环境)。

我尝试添加一个.Rprofile包含source venv/bin/activate. 此外,如果有帮助,Python 组件将使用该keras包。我还将所有必要的包下载到我的虚拟环境中。

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

标签: kerasshinyreticulatepyvenv

解决方案


这已经解决了!解决方案是创建虚拟环境并在 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 代码所需要的。

此外,如果您收到以下错误消息,您可能需要运行(然后注释掉以进行部署)以下行以使用旧版本的 rsconnect:reticulate is in use, but python was not specified

devtools::install_github("rstudio/rsconnect", ref='737cd48')

推荐阅读