36

I'm writing test visualization program based on test results. I want to run jupyter notebook via terminal and generate html page to show it to user without showing the editable scripts to user. Can I do that? Or suggest the better way to show visualized test results.

1
  • 1
    nbconvert can execute a notebook and convert it to HTML (or other formats). To hide code, you'll need a custom template.
    – Thomas K
    Commented Apr 28, 2016 at 9:58

3 Answers 3

56

Also use --execute to get the output

jupyter nbconvert --execute --to html notebook.ipynb

This produces a notebook.html file.

The best practice is to keep the output out of the notebook for version control, see: Using IPython notebooks under version control

But then, if you don't pass --execute, the output won't be present in the HTML, see also: How to run an .ipynb Jupyter Notebook from terminal?

For an HTML fragment without header: How to export an IPython notebook to HTML for a blog post?

Tested in Jupyter 4.4.0.

1
  • If you want to completely hide the code, you can add the --no-input option.
    – Thomas
    Commented Jun 3 at 20:46
8

Yes you can and it's quite easy and a built in feature

jupyter nbconvert --to html notebook.ipynb

That will generate a notebook.html file. Output can be customized. Also check out the slideshow functionality (View>Cell-Toolbar>Slideshow) which can also be used with nbconvert.

Also the notebook.ipynb Jupyter file can be uploaded to Github where the current version gets rendered. Depending on what you want that information might be useful too

Also check out line/cell magic. You can run bash commands directly in your jupyter cell like so:

%%bash
convert graphviz/MyPic.jpg -resize 70% graphviz/MyPic_sm.jpg
1

I developed jupyter-runner (https://github.com/omar-masmoudi/jupyter-runner) which is a simple wrapper around "jupyter nbconvert".

Several notebooks can be executed, with parameters, with parallel workers, input/output located in S3 and mail sending capabilities.

Not the answer you're looking for? Browse other questions tagged or ask your own question.