【发布时间】:2011-09-01 07:03:54
【问题描述】:
我想扩展 Python 交互式 shell 以允许执行非 Python 特定的语句或命令。想法是,如果您在提示符下键入会引发 NameError 的内容,您键入的内容可能会被解析为已知的外部命令,并且只有它无法找到外部命令,才会引发 NameError。
我不太确定从哪里开始,我尝试在 try: / except NameError 中调用 code.InteractiveConsole().interact(),但没有成功
我阅读了cmd 模块的文档,但我看起来它的设计目的只是为了调用外部命令并忽略 python 语句。
目标是一个简单的(它适用于非常小的、无 GUI 的系统)命令 shell,可以使用 python(而不是 sh)编写脚本
我应该在哪里寻找?纯 Python 解决方案是理想的。
【问题讨论】:
-
IPython 正是这样做的。我会先检查它的 InteractiveShell 和 Magic 类。
标签: python shell interactive readline interactive-shell