python - 如何检查您使用的 REPL 类型?

标签 python ipython read-eval-print-loop bpython ptpython

Python REPL 有很多种,比如默认的 REPL、ptpython、ipython、bpython 等。当我已经在其中时,有没有办法检查当前的 REPL 是什么?

一点背景:
你可能听说过,我做了 pdir2生成漂亮的 dir() 打印。我面临的一个挑战是使其与那些第三方 REPL 兼容,但首先我需要知道该程序在哪个 REPL 中运行。

最佳答案

好吧,终于找到了一个简单但 super 可靠的方法:检查sys.modules

您可以复制和使用的函数。

import sys

def get_repl_type():
    if any('ptpython' in key for key in sys.modules):
        return 'PTPYTHON'
    if any('bpython' in key for key in sys.modules):
        return 'BPYTHON'
    try:
        __IPYTHON__
        return 'IPYTHON'
    except NameError:
        return 'PYTHON'

关于python - 如何检查您使用的 REPL 类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42765320/

相关文章:

clojure - 你能保存你的 Clojure REPL 的状态吗(或者,你能有效地使用 REPL 编写复杂的程序吗?)

ipython - 是否有 ipython 服务器预关闭 Hook ?

python - iPython:导入的模块找不到它的共享库

python - 如何从 python 中调用 python click ?

python - 我可以在 python 中重复字符串格式描述符吗?

python - 每个给出不同的结果?

python - 如何获取仅匹配和包含部分的正则表达式匹配索引?

python - 为什么我的 WSGI 应用总是在 environ ['PATH_INFO' ] 中获取 URL 解码路径?

python - 循环保存图形

r - 仅来源文件的一部分