第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

無法從 Node.js 運行 python 文件

無法從 Node.js 運行 python 文件

慕勒3428872 2023-09-02 16:38:36
我有一個 Python 文件,其中包含 ML 模型,當我與 cmd 分開運行它時,它運行良好。每當我在特定路線上發(fā)布時,我目前都嘗試從節(jié)點運行它。但是,到目前為止,我還無法運行 python 腳本。到目前為止,我已經(jīng)在節(jié)點中使用了兩個模塊,我已經(jīng)使用了child_process,我還使用了@fridgerator/pynode。1- @fridgerator/pynode 出現(xiàn)的問題是它不斷給出錯誤 ModuleNotFoundError: No module named 'team_match_prediction3' 無法加載模塊: team_match_prediction3team_match_prediction3 是我與 node.js 文件一起放置的 python 文件名:以下是帶有 @fridgerator/pynode 模塊的 Node.js 路由的代碼:router.post(("/team"),(req, res) =>{let regressionModel = {};pynode.startInterpreter();pynode.appendSysPath('./');pynode.openFile('team_match_prediction3');    let team_1 = req.body.Team1;    let team_2 = req.body.Team2;    new Promise((resolve, reject) => {        try {          if (_.isEmpty(regressionModel)) {            console.log('calling python');            regressionModel = pynode.call('starting_func',team_1, team_2);          }          resolve(regressionModel);        } catch(err) {          console.log(err);          reject('failed to load Teams variables');        }    })    .then(response => res.send(response))    .catch(err => res.err(err));});我從這個網(wǎng)站找到了這個 pynode 代碼片段:https://thecodinginterface.com/blog/bridging-nodejs-and-python-with-pynode/2-然后我使用了子進程模塊,該模塊出現(xiàn)的問題是,stdout.on (“data”)方法沒有運行,它甚至不會等待python腳本完成并運行python.on ('close')函數(shù)。這是 child_process 部分的 node.js 代碼://The import const {spawn} = require('child_process');router.post(("/team"),(req, res) =>{ let team_1 = req.body.Team1;    let team_2 = req.body.Team2;    const python = spawn('python', ['./team_match_prediction3.py' , team_1,team_2]);    let dataToSend = [];    python.stdout.on('data', (data) => {        console.log('Pipe data from python script ...');        dataToSend.push(data);       });當我使用子進程模塊時,它只給出一個 console.log 該進程以 pid 2 結(jié)束,這幾乎立即發(fā)生,并且不發(fā)送任何數(shù)據(jù)作為響應。關于python文件,對于pynode模塊,我剛剛創(chuàng)建了一個由pynode調(diào)用的函數(shù),該函數(shù)僅調(diào)用clean_and_predict函數(shù),該函數(shù)僅返回所需的數(shù)據(jù),F(xiàn)inal_answer 是一個字典,其中 Winner 是獲勝板球隊的名稱。任何有關如何解決此問題或是否應使用新模塊的想法將不勝感激,謝謝。
查看完整描述

1 回答

?
幕布斯6054654

TA貢獻1876條經(jīng)驗 獲得超7個贊

我能夠解決這個問題,首先,我通過提供存儲 server.js 文件的文件夾的路徑而不是調(diào)用 python 文件的路由器文件來部分解決了文件未找到錯誤。


另一個問題是等待 python 文件執(zhí)行并從中獲取結(jié)果,我使用 npm 模塊 execa 來執(zhí)行此操作,


這是調(diào)用并等待 python 文件的節(jié)點部分:



    const execa = require('execa');


然后在帖子路由中:



      

let team_1 = req.body.Team1;

let team_2 = req.body.Team2;



  const subprocess = execa('python 

path/to/pythonfile/from/serve.js/folder', [team_1,team_2]);

  subprocess.stdout.pipe(process.stdout);


  (async () => {

    const {stdout} = await subprocess;

    // Returning Result: 

    res.send(stdout);

    console.log('child output:', stdout);

})();


查看完整回答
反對 回復 2023-09-02
  • 1 回答
  • 0 關注
  • 155 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號