【问题标题】:python: is it possible to detect whether I am in the paster shell?python:是否可以检测到我是否在 paste shell 中?
【发布时间】:2012-06-18 18:07:08
【问题描述】:

我正在使用 Python + ZOPE/ZODB/Repoze BFG(首字母缩略词都变得相当混乱)+ paste。

我有一个可以运行的 paste shell:

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

一切正常。然而,我有一堆被打开的监控东西——将调试信息打印到标准输出的线程——当我刚刚启动 shell 时,它们真的不需要运行。是否有可能以某种方式检测启动代码是否在 shell 中运行?因此,如果代码检测到 shell 打开,它将启动这些线程,如果 shell 打开,则不会。

【问题讨论】:

    标签: python zope paster zodb repoze.bfg


    【解决方案1】:

    bfgshell 在安装时将使用 IPython,否则使用 code 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__
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-31
      • 2012-10-09
      • 1970-01-01
      • 1970-01-01
      • 2018-02-07
      • 1970-01-01
      相关资源
      最近更新 更多