首页 > 解决方案 > 如何在 r shiny 中运行 python 脚本作为未来/承诺(网状)?

问题描述

当我从“未来”调用 python 脚本时,我收到以下错误:

监听http://127.0.0.1:5147 未处理的承诺错误:无法从集群 RichSOCKnode #1(本地主机“本地主机”上的 PID 23834)检索 MultisessionFuture () 的值。报告的原因是“从连接读取错误”。事后诊断:无法确定具有此 PID 的进程是否存在,即无法推断 localhost worker 是否处于活动状态。

source_python('./python_ref.py')

server <- function(input, output, session) {
observeEvent(input$run,{ 
myFuture <- future({
         testMethod(value1, value2, value3, value4, zvtags)
      })
      then(myFuture, onFulfilled = function(value) {
        shinyjs::enable("run")
        output$loading <- renderUI("Done")
        dataset = crunchdata(fbs, fbr, fas, far)
        p_plt(pp(dataset$datast,input$before[1],input$before[2],input$after[1],input$after[2]))
        p_tab(dataset$datatab)
      },
      onRejected = NULL)
return(NULL)
})
#The rest of the code irrelevant 
})

这是供参考的python脚本(调用另一个脚本)

cat python_ref.py
import ab_read_lhdb
def testMethod(time1, time2, time3, time4,lszv):
        ab_read_lhdb.main(time1,time2,"rcvd",lszv)
        #return ("before rcvd finished")
        ab_read_lhdb.main(time1,time2,"srvd",lszv)
        #return ("before srvd finished")
        ab_read_lhdb.main(time3,time4,"rcvd",lszv)
        #return ("after rcvd finished")
        ab_read_lhdb.main(time3,time4,"srvd",lszv)
        return ("LHDB Data pull finished")

有没有办法使这项工作?谢谢!

标签: pythonrshinyreticulate

解决方案


推荐阅读