Проблема развертывания блестящего приложения в R. Использование виртуального env с сеткой для запуска кода Python в приложении. Ошибка - виртуальная среда: разрешение запрещено
Я создаю приложение в Shiny с использованием R. У меня есть модель на Python, которую я использую в приложении, поэтому я использую reticulate
пакет для его запуска и виртуальная среда в той же папке, что и приложение для доступа python3
, Локально работает отлично, но как только я разверну его, в логах появится сообщение об ошибке
venv/bin/python: В доступе отказано
(Venv мой виртуальный ENV).
Я попытался добавить .Rprofile
файл (в папку с приложением), который включает в себя source venv/bin/activate
, Кроме того, если это полезно, компонент Python использует keras
пакет. Я также загрузил все необходимые пакеты в мою виртуальную среду.
Я тоже побежал use_python("venv/bin/python", required = TRUE)
вместо reticulate::use_virtualenv("venv", required = TRUE)
который также работает локально, но я получаю ту же ошибку, описанную выше, как только я разверну ее.
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.
Кроме того, вам может потребоваться запустить (а затем закомментировать для развертывания) следующую строку, чтобы использовать более старую версию rsconnect, если вы получите сообщение об ошибке: reticulate is in use, but python was not specified
devtools::install_github("rstudio/rsconnect", ref='737cd48')