2017-11-09 2 views
1

내 모듈이 Jupyter 노트북에서로드되고 실행되고 있는지, 더 구체적으로 ipywidgets이 사용 가능한지 알아낼 수있는 확실한 방법을 찾고 있습니다.모듈이 Jupyter에서 실행 중인지 확인하십시오.

이 질문은 다른 질문과 중복되지 않습니다. 내가 찾은 것 외에는 신뢰할만한 해결책이 없거나 (더 자주) 파이썬에서 일반적으로 사용되는 "그냥 시도해보십시오"라는 접근 방식을 사용합니다. 내 경우, 나는 다음과 같은 논리를 작성하려고 해요 : 나는 생각하지 않는다

if in_jupyter(): 
    from tqdm import tqdm_notebook as tqdm 
else: 
    from tqdm import tqdm 

"를 시도하고 실패"나는 아직 출력을 생성하지 않기 때문에 여기에 적절한 솔루션입니다.

from IPython import get_ipython 
get_ipython().config['IPKernelApp']['parent_appname'] == 'ipython-notebook' 

하지만이 구성 속성이 일부 보이는 빈 traitlets.config.loader.LazyConfigValue (.get_value(None) 그냥 빈 문자열)입니다 :

지금까지 해결책을 발견했습니다 가장 가까운

입니다.

답변

2

type(get_ipython())ipykernel인지 여부를 확인할 수 있습니다. if

type(get_ipython()).__module__.startswith('ipykernel.') 

나는 그것이 얼마나 안정적인지 모르겠다.

+0

이 수행 직장에서 더 심층적 인 정보를 찾을 수 있습니다,하지만 난 공유 안정성에 대한 우려. – scnerd

3

당신은 당신이 jupyter, ipython 또는 터미널에 있는지 알아 내기 위해 다음 코드를 사용할 수 있습니다

def type_of_script(): 
    try: 
     ipy_str = str(type(get_ipython())) 
     if 'zmqshell' in ipy_str: 
      return 'jupyter' 
     if 'terminal' in ipy_str: 
      return 'ipython' 
    except: 
     return 'terminal' 

당신은 How can I check if code is executed in the IPython notebook?

관련 문제