Created
June 12, 2018 16:30
-
-
Save craigsdennis/ddfaa99a6291f05fef879329821872ee to your computer and use it in GitHub Desktop.
Run Python code from JavaScript in a Jupyter notebook
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// %%javascript | |
window.executePython = function(python) { | |
return new Promise((resolve, reject) => { | |
var callbacks = { | |
iopub: { | |
output: (data) => resolve(data.content.text.trim()) | |
} | |
}; | |
Jupyter.notebook.kernel.execute(`print(${python})`, callbacks); | |
}); | |
} | |
// Use it in any Jupyter JS/HTML cell like this | |
%%javascript | |
window.executePython("1 + 1") | |
.then(result => console.log(result)); // Logs 2 | |
// You can access any defined object/method in the notebook | |
// I suggest writing a function that returns your data as JSON and just calling the function. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Actually this doesn't work in JUpyter-Lab:
Somehow Jupyter object is not visible from inside the notebook. Would you have any ideas these days how to communicate with the Kernel (ipython or other) from Javascript ?
cheers