在节点child_process中检测python异常

肖恩

我注意到,当我使用child_processspawn()方法在Node.js中生成python脚本时,我无法捕获异常。

这是一个简单的例子来说明:

index.js:


const spawn = require('child_process').spawn;

(() => {
    const py = spawn('python', ['../pyfun/main.py']);

    py.stdout.on('data', function(data){
        console.log(data.toString());
    });

    py.stdout.on('end', function(){
        console.log('Finished');
    });

    py.stdout.on('error', function(){
        console.log('* Error');
    });

    py.on('error', (err) => {
        console.error('**', err);
    });

    py.stderr.on('error', (err) => {
        console.log('*** Error', error);
    })
})();

main.py:

def main():
    print('Hello')
    raise ValueError('Python Error')

if __name__ == '__main__':
    main()

输出是

Hello // <-- from python

Finished // <-- from Node

我正在hello从Python脚本中获取,但无法获取错误。如果我raise Exception('error')也在python脚本中使用也是这种情况

任何见解表示赞赏。

br

添加一个处理程序py.on('exit', code => {}),如果代码为非零,则错误已转储至stderr,您可以通过以下方式访问py.stderr.on('data', data => {})

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在节点的 child_process 中运行函数

来自分类Dev

节点检测到child_process等待从stdin读取

来自分类Dev

节点child_process与Heroku worker

来自分类Dev

使用茉莉监视节点child_process

来自分类Dev

节点 child_process execSync 与 xclip 挂起

来自分类Dev

节点JS-Grunt任务中的child_process spawn('npm install')导致ENOENT错误

来自分类Dev

节点 child_process 在 stderr 中为 mongodump 提供有效输出

来自分类Dev

节点require('child_process')。spawn抛出ENOENT

来自分类Dev

节点js上有多个child_process exec

来自分类Dev

我应该如何使用 child_process 模块在 linux 中通信 python 和 node.js?

来自分类Dev

使用node.js child_process调用python脚本

来自分类Dev

child_process spawnSync使用for循环迭代python stdout结果

来自分类Dev

使用node.js child_process调用python脚本

来自分类Dev

来自AWS Lambda函数中的spawn child_process的SIGSEGV

来自分类Dev

无法从node.js中的child_process访问数组

来自分类Dev

在nodejs中与child_process共享数据库连接

来自分类Dev

功能步骤中的黄瓜JS child_process

来自分类Dev

反应本机中的未知模块“ child_process”

来自分类Dev

Node js Google App Engine 中的 child_process

来自分类Dev

当child_process中的exec shell时,child_process中的stdout无法在stdin之前输出右行

来自分类Dev

守护被'fork'的'child_process'

来自分类Dev

为什么要在节点中使用child_process而不是集群?

来自分类Dev

调用 git shortlog -sn 时节点 child_process spawn 挂起

来自分类Dev

如何构建docker以从Google App Engine中的Node.js child_process运行Python3?

来自分类Dev

child_process流背压

来自分类Dev

NodeJ的child_process工作目录

来自分类Dev

使用竖线字符| 与child_process生成

来自分类Dev

require(“ child_process”)实际做什么?

来自分类Dev

child_process退出,代码为null

Related 相关文章

  1. 1

    在节点的 child_process 中运行函数

  2. 2

    节点检测到child_process等待从stdin读取

  3. 3

    节点child_process与Heroku worker

  4. 4

    使用茉莉监视节点child_process

  5. 5

    节点 child_process execSync 与 xclip 挂起

  6. 6

    节点JS-Grunt任务中的child_process spawn('npm install')导致ENOENT错误

  7. 7

    节点 child_process 在 stderr 中为 mongodump 提供有效输出

  8. 8

    节点require('child_process')。spawn抛出ENOENT

  9. 9

    节点js上有多个child_process exec

  10. 10

    我应该如何使用 child_process 模块在 linux 中通信 python 和 node.js?

  11. 11

    使用node.js child_process调用python脚本

  12. 12

    child_process spawnSync使用for循环迭代python stdout结果

  13. 13

    使用node.js child_process调用python脚本

  14. 14

    来自AWS Lambda函数中的spawn child_process的SIGSEGV

  15. 15

    无法从node.js中的child_process访问数组

  16. 16

    在nodejs中与child_process共享数据库连接

  17. 17

    功能步骤中的黄瓜JS child_process

  18. 18

    反应本机中的未知模块“ child_process”

  19. 19

    Node js Google App Engine 中的 child_process

  20. 20

    当child_process中的exec shell时,child_process中的stdout无法在stdin之前输出右行

  21. 21

    守护被'fork'的'child_process'

  22. 22

    为什么要在节点中使用child_process而不是集群?

  23. 23

    调用 git shortlog -sn 时节点 child_process spawn 挂起

  24. 24

    如何构建docker以从Google App Engine中的Node.js child_process运行Python3?

  25. 25

    child_process流背压

  26. 26

    NodeJ的child_process工作目录

  27. 27

    使用竖线字符| 与child_process生成

  28. 28

    require(“ child_process”)实际做什么?

  29. 29

    child_process退出,代码为null

热门标签

归档