1

私は Python + ZOPE/ZODB/Repoze BFG (頭字語はすべて非常に混乱します) + ペーストを使用しています。

次のようにして実行できるpasterシェルがあります。

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

すべて正常に動作します。ただし、オンになる監視機能がたくさんあります-デバッグ情報を標準出力に出力するスレッド-シェルを起動したばかりのときに実行する必要はありません。起動コードがシェルで実行されているかどうかを何らかの方法で検出することは可能でしょうか? したがって、コードがシェルがオンになっていないことを検出すると、それらのスレッドを開始し、シェルオンになっている場合は開始しません。

4

1 に答える 1

1

bfgshell は、インストール時に IPython を使用し、それ以外の場合はcodeInteractiveInterpreterを使用します。次のいずれかを使用してテストできます。

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__
于 2012-06-19T09:32:40.867 に答える