Question

Is there a way to create a .ipynb from a .py file command line?

Why I would want to do this: I want to refactore some code using a text editor. My ipynb file is on a server, and it is way easier to transfer a .py file (generated by running ipython notebook with --script) that is tracked on a version control system (git) than ipynb.

Ideally I want to do the following:

  • the Notebook is running with --script, so I have a .py file
  • commit the new version of the file, push from the server and pull on my machine
  • pull from my machine
  • edit on my machine
  • commit, push from my machine and pull from the server
  • create the .ipynb file from the new .py file and replace the old one

And I can't find any way to start on the server an iPython Notebook from a py file that is on the server.

Sure, I can add the .ipynb to git, but there are good reasons not to do that. I could also send files using ftps, but since it is something I do rather often I'd like to find a better solution.

Was it helpful?

Solution

I believe it is covered here: https://stackoverflow.com/a/23292713/3025981. I reproduce the snipped here:

import IPython.nbformat.current as nbf
nb = nbf.read(open('test.py', 'r'), 'py')
nbf.write(nb, open('test.ipynb', 'w'), 'ipynb')

OTHER TIPS

From https://pypi.org/project/ipynb-py-convert/

pip install ipynb-py-convert

Example

ipynb-py-convert examples/plot.py examples/plot.ipynb

or

ipynb-py-convert examples/plot.ipynb examples/plot.py
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top