python:有没有可能检测到我是否在paster shell中?

2024-05-15 14:08:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是Python+ZOPE/ZODB/Repoze-BFG(这些首字母缩写词都很混乱)+paster。你知道吗

我有一个贴纸外壳,我可以通过以下方式运行:

paster --plugin repoze.bfg bfgshell site.ini zodb

一切正常。然而,我有一大堆监控功能,这些功能被打开了,线程将调试信息打印到stdout,在我刚刚启动shell时,这些功能实际上不需要运行。是否有可能以某种方式检测启动代码是否在shell中运行?因此,如果代码检测到shell未启用,它将启动这些线程,如果shell未启用,则不会启动这些线程


Tags: 代码功能zope方式shell外壳线程plugin
1条回答
网友
1楼 · 发布于 2024-05-15 14:08:00

bfgshell在安装时将使用IPython,否则将使用^{} InteractiveInterpreter。您可以使用以下方法测试其中一种:

import sys

def in_shell():
    # Interactive prompt sets sys.ps1
    if hasattr(sys, 'ps1'):
        return True

     # __IPYTHON__ is defined when running under IPython
    return '__IPYTHON__' in __builtins__

相关问题 更多 >