0

我正在制作一个具有 IPython 命令行界面的 Web 应用程序,我想添加自动完成功能。到目前为止,stdout/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
  });
});
4

1 回答 1

0

为什么这么讨厌大写的我?它是 IPython(不是由 Apple 构建的),但没关系。

话虽如此,为什么要使用重新发明轮子的艰难道路而不是阅读有关同一主题的其他SO 问题?

我猜您的略有不同,因为您在服务器端有 js,因此您可以在服务器端要求 ZMQ 并遵守消息规范(以及编写 IHaskell 的人关于消息传递协议的精彩博客文章)。有了它,它就会比解析标准输出更脆弱,拥有更多功能(发送图像)。此外,您还可以免费使用其他语言,如果您搭建到 websockets 的桥梁,我想您可以重用kernel.js.

愚蠢的问题,但你见过 IPython 笔记本吗?看起来你可以从中重用很多东西。

于 2013-10-27T09:56:07.953 回答