2017-11-09 17 views
1

私のモジュールがJupyterノートブック内からロード/実行されているかどうか、具体的にはipywidgetsが利用可能かどうかを確かめる方法を探しています。モジュールがJupyterで動作しているかどうかを確認してください

これは他の質問の重複ではありません。私が見つけたものは、信頼できる解決策がないか、Pythonでよく見られる「ちょっと試してやり直してください」というアプローチを使用します。私の場合、私は以下のロジック記述しようとしている:私は考えていない

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' 

が、この構成プロパティは、(.get_value(None)がちょうど空の文字列です)traitlets.config.loader.LazyConfigValueいくつかの一見空です:

私がこれまでに解決策を見つけた最も近いです。

答えて

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?

関連する問題