2013-10-26 78 views
0

我正在製作一個Web應用程序,它具有IPython的命令行界面,我想添加自動完成。到目前爲止,stdout/stdin的讀寫工作正常,我可以傳輸命令,但是我堅持實現自動完成功能。我試着通過stdin發送\t,但那不是要走的路。有沒有辦法做到這一點?Node.js流python自動完成條目

這是我的基本的服務器邏輯:

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

爲什麼這麼多恨大寫字母I?它是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筆記本?看起來會有很多你可以從中重用。