2012-06-18 5 views
1

저는 Python + ZOPE/ZODB/Repoze BFG (머리 글자 어는 모두 매우 혼란스러워집니다) + paster를 사용하고 있습니다.파이썬 : 내가 껍데기 껍질에 있는지 여부를 감지 할 수 있습니까?

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

모든 것이 잘 작동 :

은 내가 수행하여 실행할 수있는 paster 쉘을 가지고있다. 그러나 디버깅 정보를 stdout으로 출력하는 스레드가 켜져 있는지 모니터링 할 수 있습니다. 실제로 쉘을 시작할 때 실행할 필요가 없습니다. 시작 코드가 셸에서 실행되는지 여부를 어떻게 든 감지 할 수 있습니까? 따라서 코드가 이 아니고이 아닌 것으로 확인되면 해당 스레드가 시작되고 이면 켜지지 않습니다.

답변

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__ 
+0

간단하고 간단합니다 - 감사합니다! – Claudiu