我正在创建一个具有IPython命令行界面的Web应用程序,我想添加自动完成功能。到目前为止,stdout / stdin的读写工作正常,我可以传输命令,但是我无法实现自动完成功能。我尝试通过stdin发送\t
,但这不是要走的路。有没有办法做到这一点?
这是我的基本服务器逻辑:
var python = spawn('ipython', ['-i']);
s.on('run', function (input) {
python.stdin.write(input.command + '\n');
});
python.stdout.on('data', function (data) {
var output = '' + data;
s.emit('response', {
output: output
});
});
python.stderr.on('data', function (data) {
var output = '' + data;
s.emit('response', {
error: output
});
});
答案 0 :(得分:0)
为什么那么讨厌大写我?它是IPython(不是由Apple构建的),但没关系。
话虽如此,为什么要使用重新发明轮子的艰难道路呢 没有读过关于同一主题的其他SO questions?
我猜你的有点不同,因为你在服务器端有js所以你可以要求
服务器端的ZMQ符合the message spec(和blog post about messaging protocol from the guy who wrote IHaskell)。有了它,它比解析stdout要脆得多,有更多功能(发送图像)。此外,您还可以免费使用其他语言,如果您搭建了websockets,我想您可以重用kernel.js
。
愚蠢的问题,但你见过IPython笔记本吗?看起来你可以从中重复使用。