Я пытаюсь выполнить / вызвать .py
скрипт из моего ShinyApp, но без особого успеха. Я последовал советам репо и установил следующую переменную среды в .Renviron
:
RETICULATE_PYTHON = "D \ Miniconda \ envs \ myenv"
Этот параметр позволяет мне обойти SYSENV, который устанавливает более низкую версию Python. После установки возвращается следующий вывод:
library(reticulate)
R> py_config()
python: D:\Miniconda\envs\myenv\python.exe
libpython: D:/Miniconda/envs/myenv/python36.dll
pythonhome: D:\Miniconda\envs\myenv
version: 3.6.9 |Anaconda, Inc.|...
....
Однако, когда я пытаюсь выполнить conda_binary()
или use_condaenv()
, я получаю следующую ошибку:
R> conda_binary()
Error: Unable to find conda binary. Is Anaconda installed?
Я есть " предположив, "это то, что вызывает сбой моего скрипта в приложении, см. полный код ниже:
ui<-fluidPage(
titlePanel('Sample IRI'),
sidebarLayout(
sidebarPanel(
fileInput(
inputId = "file1",
label = "Upload Image")
shinyjs::hidden(shinyWidgets::actionBtn(
inputId = "varBtn1",
label = "Initialize image encoding",
color = "success",
style = "material-flat")),
tags$hr() ),
mainPanel(
shinyjs::useShinyjs(),
textoutput("filename"),
imageOutput(outputId = "varImage")
)
)
)
#### server.R
server<-function(input,output,session) {
re1<-reactive({gsub("\\\\","/",input$file1$datapath)})
pyFile<-reactive({
inFile<-input$file1
inName<-inFile$name
inName })
observeEvent(input$file1, {
inFile<-input$file1
if(is.null(inFile))
return()
file.copy(inFile$datapath,file.path("C:/R/Apps/MyApp/user_upload"),inFile$name))
output$varImage<-renderImage(
{list(src = re1())})
output$filename <- renderPrint({
visFun<-input$file1$datapath
print(visFun) })
shinyjs::show(varBtn1)
})
observeEvent(input$varBtn1, {
img<-pyFile()
use_condaenv("myenv")
py_run_file("D:\Miniconda\envs\myenv\encode_image.py)
#enconde_image.py defines the function `ImageApp`
out<-py$ImageApp(img)
})
Возврат ошибки:
Warning: Error in: Unable to find conda binary. Is Anaconda installed?
}