그래서 저는 며칠 동안 IPython 노트북을 가지고 놀았습니다. 하지만 이제 약간 멋진 것을해야합니다 :IPython Notebook : 프로그래밍 방식으로 JavaScript에서 셀을 트리거
나는 마커 다운 셀을 가지고 있습니다. 여기에는 HTML 입력과 버튼, 그리고 입력 내용을 가져 와서 파이썬 커널에 삽입하는 버튼에 첨부 된 JavaScript가 있습니다. 셀은 다음과 같습니다.
<h3>Use JS to pass DOM info to Python kernel: </h3>
<input id='testinput' value='FragmentId'></input>
<button id='testComms' onclick='JS2PY()'>:D</button>
<script type="text/javascript">
function JS2PY(){
var input = document.getElementById('testinput').value,
kernel = IPython.notebook.kernel;
kernel.execute('testVar = "' + input + '"');
}
</script>
매력처럼 작동합니다. 다음으로 나는 파이썬 코드 셀을 가지고있다. 몇 가지 ROOT 작업을 수행하고 위의 셀에서 파이썬 커널에 주입 된 값을 기반으로 플롯을 만듭니다. 여기에 파이썬 셀이 있습니다 :
def testfunc():
from ROOT import TH1, TFile, TTree
import rootnotes, numpy
c2 = rootnotes.canvas("treeData", (600,400))
testfile = TFile("fragment27422_000.root")
testtree = testfile.Get("FragmentTree")
buff = numpy.zeros(1, dtype=float)
testtree.Branch(testVar, buff)
testtree.Draw(testVar)
return c2
testfunc()
수동으로 이동하여 셀을 실행해도 괜찮습니다. 하지만 실제로 원하는 것은, testVar
변수를 승격 한 후, 위의 마크 다운 셀에서 해당 버튼을 클릭하면이 파이썬 셀이 자동으로 실행됩니다. 사과와 사전에 감사드립니다 - 이것은 나를위한 파이썬 2 일뿐입니다. 그래서 아마 정말 간단 할 것입니다.