运行进程的Python REPL
我现在正在用Python开发一个简单的应用程序,这个程序可以连接到服务器。目前,它是单线程的(因为现在不需要多线程)。
不过,我希望能够通过标准输入(stdin)来实现一个REPL(交互式命令行),这样方便调试和维护。
我该怎么做呢?如果可以的话,有什么需要注意的地方吗?我需要为这个功能单独创建一个线程吗?
3 个回答
2
还有一个叫做 rfoo 的工具。在它的说明文件里提到:
rconsole - 这个工具是 rfoo 包里自带的,它是一个远程的 Python 控制台,支持自动补全,可以用来查看和修改正在运行的脚本的命名空间。
在脚本中激活它的方法是:
from rfoo.utils import rconsole
rconsole.spawn_server()
如果想从命令行连接,可以使用:
$ rconsole
安全提示:
使用 spawn_server() 启动的 rconsole 监听器会接受任何本地连接,因此在共享主机或类似环境中使用可能不安全!
3
你要么需要使用非阻塞方式,要么就得用线程。
我个人会选择使用Twisted来处理并发,它还提供了一个REPL协议,集成起来很简单。
1
也许这个问题能帮到你。你可以稍微改动一下,制作一个自定义的REPL。