2016-05-11 42 views
2

私が理解しているように、変数fooを以下のスニペットで印刷することができます。Jupyterでjavascriptからpythonに変数を渡すには?

from IPython.display import HTML 
HTML(''' 
    <script type="text/javascript"> 
     IPython.notebook.kernel.execute("foo=97") 
    </script> 
    ''') 
print(foo) 

代わりに、私は、このエラーメッセージが表示されます。

NameErrorTraceback (most recent call last) 
<ipython-input-2-91b73ee49ec6> in <module>() 
     5  </script> 
     6  ''') 
----> 7 print(foo) 

NameError: name 'foo' is not defined 

私はthis answerを使用しようとしているが、それを動作させるのに苦労しています。

FWIW、これはFedora 23で動作する最新のJupyterコード(pipによる)です。この作業を行うための前提条件は何ですか?

+0

これがうまくいかない理由は、Javascriptが送信した新しいコードを実行する前に、セル内のコードの実行を終了させるためです。 –

答えて

6

これは私があなたのコードの作品を​​作った方法です。 enter image description here

またはさらに簡単:

enter image description here

+0

2つの間に実用的な違いはありますか? –

+0

外部のjavascriptスクリプトをどのように呼び出すことができますか? – LFRC

+0

これらの2つの間で双方向通信を生成する方法は? – LFRC

1
from IPython.display import HTML 
HTML(''' 
<script type="text/javascript"> 
    IPython.notebook.kernel.execute("foo=11") 
</script> 
''') 
from time import sleep 
sleep(3) 
print(foo) 

この作品理由はHTMLでは、印刷の仕事とあなたのためにいくつかの時間がかかります値が設定される前でさえ。スリープでは、3秒の待ち時間が十分であるように見え、変数が割り当てられます。

関連する問題