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

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

1 Ответ

0 голосов
/ 05 марта 2019

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