code.InteractiveConsole と SocketServer を使用して、Python インタラクティブ シェルをソケットに接続し、それを使用して開発を行うことができます。簡単な例は次のようになります。
import sys
import SocketServer
from code import InteractiveConsole
class InteractiveServer(SocketServer.BaseRequestHandler):
def handle(self):
file = self.request.makefile(mode='rw')
shell = Shell(file)
try:
shell.interact()
except SystemExit:
pass
class Shell(InteractiveConsole):
def __init__(self, file):
self.file = sys.stdout = file
InteractiveConsole.__init__(self)
return
def write(self, data):
self.file.write(data)
self.file.flush()
def raw_input(self, prompt=""):
self.write(prompt)
return self.file.readline()
if __name__ == '__main__':
HOST, PORT = "127.0.0.1", 9999
server = SocketServer.TCPServer((HOST, PORT), InteractiveServer)
server.serve_forever()
それを起動して実行したら、別の端末からポート 9999 に接続して、自分のことを行うことができます。このスクリーンショット(PNG)でこれが機能していることを確認できます
InteractiveConsole を使用するための基本は、この投稿から取得されました。私が取り組んでいた別のプロジェクトの SocketServer で動作するように変更しました。