Проблема с развертыванием блестящего приложения в R. Использование виртуальной среды с ретикуляцией для запуска кода Python в приложении. Ошибка виртуальной среды: разрешение отклонено

Я создаю приложение в Shiny с помощью R. У меня есть модель на 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), который также работает локально, но после развертывания я получаю ту же ошибку, что и описанная выше.


person esulli    schedule 04.03.2019    source источник


Ответы (1)


Это было решено! Решение состояло в том, чтобы создать виртуальную среду и загрузить необходимые пакеты внутри файла кода R. Если у других есть такая же проблема, вот соответствующий код для настройки виртуальной среды python, чтобы иметь возможность развертывания наshininapps.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')
person esulli    schedule 05.03.2019