16

I wrote a code in python using jupyter notebook and i want to generate an executable of the program.

1
  • You may need to convert your notebook to a python script (using nbconvert for example). After that you can try a pip package to help wrap the the script (e.g. py2exe, pyinstaller, etc.) Commented Jun 24, 2024 at 10:31

2 Answers 2

23

No, however it is possible to generate a .py script from .ipynb, which can then be converted to a .exe

With jupyter nbconvert (If you are using Anaconda, this is already included)

In the environment :

pip install nbconvert
jupyter nbconvert --to script my_notebook.ipynb

Will generate a my_notebook.py.

Then with Pyinstaller :

pip install pyinstaller
pyinstaller my_notebook.py

You should now have a my_notebook.exe and dist files in your folder.

Source: A slightly outdated Medium Article about this

Sign up to request clarification or add additional context in comments.

1 Comment

There are some pitfalls for pyinstaller when using pandas. I wrote a detailed step-by-step tutorial how to create a one-file executable (.py -> .exe) here: geo.rocks/post/python-to-exe.
11

You can use this code I've written to convert large numbers of .ipynb files into .py files.

srcFolder = r'input_folderpath_here'
desFolder = r'output_folderpath_here'

import os
import nbformat
from nbconvert import PythonExporter

def convertNotebook(notebookPath, modulePath):
    with open(notebookPath) as fh:
        nb = nbformat.reads(fh.read(), nbformat.NO_CONVERT)
    exporter = PythonExporter()
    source, meta = exporter.from_notebook_node(nb)
    with open(modulePath, 'w+') as fh:
        fh.writelines(source)

# For folder creation if doesn't exist
if not os.path.exists(desFolder):
    os.makedirs(desFolder)

for file in os.listdir(srcFolder):
    if os.path.isdir(srcFolder + '\\' + file):
        continue
    if ".ipynb" in file:
        convertNotebook(srcFolder + '\\' + file, desFolder + '\\' + file[:-5] + "py")

Once you have converted your .ipynb files into .py files.
Try running the .py files to ensure they work. After which, use Pyinstaller in your terminal or command prompt. cd to your .py file location. And then type

pyinstaller --onefile yourfile.py

This will generate a single file .exe program

1 Comment

You can generate .py files from .ipynb files using this one liner instead jupyter nbconvert --to script *.ipynb

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.