Cannot import .py file to ipython notebook
jupyter-notebook
Solution
I'm not sure why notebook doesn't support this natively, but I've concluded that the answer is: It can't be done from the command line or notebook GUI.
Control comments like `<markdowncell>` can only be interpreted by accessing notebook's API through python, as shown by @CliffordVienna in this answer to my related question.
import IPython.nbformat.current as nbf
nb = nbf.read(open('test.py', 'r'), 'py')
nbf.write(nb, open('test.ipynb', 'w'), 'ipynb')
Edit: The above method does not work with the current version (`v4`) of the Notebook API, so I have added this self-answer to show how it's done.
Problem
With apologies in advance for the "I can't get it to work" question: How should I load a `.py` file into ipython notebook? I want to convert python code to notebooks (first simple scripts and later scripts that include `nbconvert` directives embedded as comments-- see bottom of the linked file.) Perhaps I'm doing it wrong, but perhaps there's something wrong with my set-up. When I drag a `.py` file to the Notebook's file list, I get the message Invalid file type: Uploaded notebooks must be `.ipynb` files. I even tried changing the extension to `.ipynb` (keeping the python script unmodified); reasonably enough, I got an error: Error loading notebook: Bad request Any idea what's going wrong? System information: I'm on OS X (10.8, Mountain Lion), using Firefox 28.0 and Anaconda 1.9.2 (x86_64), which supplies python 2.7.6 and ipython 2.0. Anaconda is not on the default PATH; I add it in a bash session from which I then launch notebook with `ipython notebook`, and I'm able to open and edit `.ipynb` files normally in the browser. But I do get some curious behavior: When exporting from notebook as a `.py` file, I don't get the control comments documented here but a simpler format, without version number: ``` # coding: utf-8 # In[ ]: print "This is a slide" ## Top-level title ### Second-level heading #### Third-level heading # This is some `markdown` text. # # And some more here. ``` Any idea what's going on here? The same format is generated by `ipython nbconvert`. However, if I start the notebook server with `ipython notebook --script` (which exports the notebook as a python script every time it is saved), the result contains the `nbconvert` directives we need to convert back to a notebook!