2017-01-10 10 views
3

私はJupyter Notebookを使用しており、Githubにあるテンプレートに基づいてウィジェットを作成しようとしています。Jupiter Notebook、Python:関数内から魔法を呼び出す方法は?

テンプレートはある時点で魔法%%javascriptを使用します。これは、ノートブックのセルに直接貼り付けると問題なく動作します。

%%javascript SyntaxError: invalid syntax

誰もがそれができるように、魔法のコマンドを「変換」する方法を知っている:私は%%javascript表現は、それがエラーを返します持つ、ウィジェットのうち、機能を作ってみましたしかし

(関数は別のファイルに保存されます)

答えて

3

?組み込みのIPythonを使用すると、魔法のパスを見ることができます。たとえば、%%javascript?は、それがlib\site-packages\ipython\core\magics\display.pyにあることを示しています

それをインポートして標準として使用することができます。あなたは、ノートブックからそれを実行した場合、たとえば、次のように警告ボックスをポップアップ表示:

from IPython.core.magics.display import Javascript 
Javascript('alert("hello world")') 

EDIT:あなたが引用符で実行したいのですがJavascriptをラップし、あなたが働いてコメントに投稿された例を取得するにはJavascriptと呼んでください。 In[4]をこれに置き換えると、通常どおりウィンドウがポップアウトされ、通常のPython関数に含めても問題ありません。

from IPython.core.magics.display import Javascript 
Javascript("""$('div.inspector') 
    .detach() 
    .prependTo($('body')) 
    .css({ 
     'z-index': 999, 
     position: 'fixed', 
     'box-shadow': '5px 5px 12px -3px black', 
     opacity: 0.9 
    }) 
    .draggable();""") 
+0

関数内でJavascriptを呼び出す方法を知っていますか?元のブロックが '%% javascript'で呼び出された場合、正常に動作します。しかし、私は以前のコード(これはそれを機能させる前に)とそのセルをマージするとすぐに、私はドル記号でエラーメッセージが表示されます。無効な構文です。私が動作させようとしているコードブロックは以下の通りです: '%% javascript $( 'div.inspector') .detach() .prependTo($( 'body')) .css({ 'Zインデックス':999、 位置: '固定'、 'ボックス影': '5pxの5pxの12ピクセル-3px黒' 不透明度:0.9 }) .draggable();多分実際には ' – Radar

+0

そのこれは私が関数として作ろうとしているスニペットです:https://github.com/ipython/ipywidgets/blob/master/docs/source/examples/Variable%20Inspector.ipynb。この問題は[4]のセルから生じます。 – Radar

関連する問題