在 R 中部署 shiny 应用程序时出现问题。在应用程序中使用带有网状到 运行 python 代码的虚拟环境。错误——虚拟环境:权限被拒绝
Problem deploying shiny app in R. Using a virtual env with reticulate to run python code in app. Error -- virtual environment: permission denied
我正在使用 R 在 Shiny 中创建一个应用程序。我在 python 中有一个我在应用程序中使用的模型,所以我使用 reticulate
包来 运行 它并且与应用程序位于同一文件夹中的虚拟环境以访问 python3
。它在本地运行良好,但是一旦我部署它,我就会在日志中收到一条错误消息
venv/bin/python: Permission denied
(venv 是我的虚拟环境)。
我尝试添加一个包含 source venv/bin/activate
的 .Rprofile
文件(添加到应用所在的文件夹)。此外,如果有帮助,Python 组件使用 keras
包。我还将所有必需的软件包下载到我的虚拟环境中。
我也 运行 use_python("venv/bin/python", required = TRUE)
而不是 reticulate::use_virtualenv("venv", required = TRUE)
,它也可以在本地工作,但是一旦我部署它,我就会遇到上述相同的错误。
已解决!解决方案是创建虚拟环境并在 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')
我正在使用 R 在 Shiny 中创建一个应用程序。我在 python 中有一个我在应用程序中使用的模型,所以我使用 reticulate
包来 运行 它并且与应用程序位于同一文件夹中的虚拟环境以访问 python3
。它在本地运行良好,但是一旦我部署它,我就会在日志中收到一条错误消息
venv/bin/python: Permission denied
(venv 是我的虚拟环境)。
我尝试添加一个包含 source venv/bin/activate
的 .Rprofile
文件(添加到应用所在的文件夹)。此外,如果有帮助,Python 组件使用 keras
包。我还将所有必需的软件包下载到我的虚拟环境中。
我也 运行 use_python("venv/bin/python", required = TRUE)
而不是 reticulate::use_virtualenv("venv", required = TRUE)
,它也可以在本地工作,但是一旦我部署它,我就会遇到上述相同的错误。
已解决!解决方案是创建虚拟环境并在 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')