Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node.js+;Python子进程:Print返回数据,但返回不';T_Javascript_Python_Node.js_Sockets - Fatal编程技术网

Javascript Node.js+;Python子进程:Print返回数据,但返回不';T

Javascript Node.js+;Python子进程:Print返回数据,但返回不';T,javascript,python,node.js,sockets,Javascript,Python,Node.js,Sockets,我有一个基本问题。我正在用node.js+socket.io编写开始代码,其中我使用python子进程并在返回数据时触发操作,即: io.sockets.on('connection',function(socket) { socket.on('load_api_call', function() { var pythonarray=['/Users/<omitting path>/test_return_sub_dict.py'] var

我有一个基本问题。我正在用node.js+socket.io编写开始代码,其中我使用python子进程并在返回数据时触发操作,即:

io.sockets.on('connection',function(socket) {
    socket.on('load_api_call', function() {

        var pythonarray=['/Users/<omitting path>/test_return_sub_dict.py']

        var child=spawn('/Users/<omitting path>/python2.7',pythonarray)

        child.stdout.on('data',function(data){
            socket.emit('jsonSuccess',data.toString('utf8'));           
            console.log('python output: '+data);
        });

        child.stderr.on('data',function(data){
            process.stdout.write('error output: '+data);
        });

    });
});
不会返回套接字会注意到的任何内容。但最后一行:

print sub_dict
将被套接字注意到并触发后续所需的操作

从python子进程返回数据以使节点注意到数据的正确方法是什么

我可以看出,我不理解Python、Node或两者的一些基本机制,但我不知道如何称呼它为google的答案


谢谢你的建议

python脚本必须输出到stdout或stderr,以便节点拾取数据,因为这些是子进程对象正在监视的流。AFAIK仅返回一个值不会自动显示该数据,因此您必须告诉python手动打印到stdout或stderr。

谢谢!我相信你,根据我从那以后读到的和我的黑客朋友告诉我的。我认为这是正确的。
print sub_dict