簡體   English   中英

節點應用程序中的python-shell

[英]python-shell from a node application

題:

如何在節點應用程序中運行python腳本?

這有效:

從命令行運行此命令,它可以正常工作。

python generatePersonTerraform.py -s http://localhost:8080/api/person/239/exportPersonGeneration

在Node server.js中不起作用的代碼

var PythonShell = require('python-shell');
...

var runPythonRoutine = function (request, response) {
    var PythonShell = require('python-shell');
    var options = {
        mode: 'text',
        pythonPath: 'python',
        pythonOptions: ['-s'],
        scriptPath: '.',
        args: ['http://localhost:8080/api/person/135/exportPersonGeneration']
    };
    PythonShell.run('generatePersonTerraform.py', options, function (err, results) {
       console.log(err);
    });
}

錯誤:

    at PythonShell.parseError (/root/my-app/node_modules/python-shell/index.js:191:17)
    at terminateIfNeeded (/root/my-app/node_modules/python-shell/index.js:98:28)
    at ChildProcess.<anonymous> (/root/my-app/node_modules/python-shell/index.js:89:9)
    at emitTwo (events.js:106:13)
    at ChildProcess.emit (events.js:194:7)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:215:12)
  executable: 'python',
  options: [ '-s' ],
  script: 'generatePersonTerraform.py',
  args: [ 'http://localhost:8080/api/person/239/exportPersonGeneration' ],
  exitCode: 1 }

注意

我一直在嘗試使用https://www.npmjs.com/package/python-shell

編輯1

我將選項更改為:

var options = {
    mode: 'text',
    pythonPath: 'python',
    pythonOptions: [],
    scriptPath: '.',
    args: ['-s', 'http://localhost:8080/api/serviceType/135/exportPluginGeneration']
};

並得到此錯誤:

    at PythonShell.parseError (/root/my-app/node_modules/python-shell/index.js:191:17)
    at terminateIfNeeded (/root/my-app/node_modules/python-shell/index.js:98:28)
    at ChildProcess.<anonymous> (/root/my-app/node_modules/python-shell/index.js:89:9)
    at emitTwo (events.js:106:13)
    at ChildProcess.emit (events.js:194:7)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:215:12)
  executable: 'python',
  options: null,
  script: 'generatePersonTerraform.py',
  args: 
   [ '-s',
     'http://localhost:8080/api/person/135/exportPersonGeneration' ],
  exitCode: 0 }

但是,它也可以運行並起作用,只是使節點應用程序停滯了。 因此,如果我弄清楚如何使其不失速,那我就很好。 python腳本似乎可以構建所有應有的文件。

'-s'應該在args ,而不是pythonOptions

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM