在 django 网站上互动 Shell

Interactive Shell on website in django

我有一个 Django 项目 运行。我想提供一个用户通过 Web 应用程序以交互方式使用 JDB 来调试应用程序。我希望用户可以发出诸如

之类的命令
stop in [function name]
next

并且他会得到回复然后可以继续。

然而,当我使用 os.system 时,就像这样:

def AttachDebugger(pid):
    # enable port forwarding
    adb = ADB()
    adb.set_adb_path('~/Library/Android/sdk/platform-tools/adb')
    adb.forward_socket('tcp:8001', 'jdwp:' + pid)
    # attaching
    os.system('jdb -connect com.sun.jdi.SocketAttach:hostname=localhost,port=8001')

然后它在后台打开一个 JDB 会话,但它在那里冻结并且不 return 控制 python 代码,除非通过 CTRL+C 停止它。有什么办法可以提供这样的互动环节吗?

我想要的与此处的 GITHUB-教程页面类似: https://try.github.io/levels/1/challenges/1 用户可以与 JDB 实例交互的地方

提前致谢。

我用 pexpect 模块搞定了。