运行进程的Python REPL

5 投票
3 回答
2263 浏览
提问于 2025-04-15 12:02

我现在正在用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。

撰写回答