Skip to main content

A tool to run Jupyter notebooks as Python scripts

Project description

run-ipynb

Run Jupyter notebooks as plain Python scripts from the command line.

This tool converts a .ipynb to .py, removes IPython-only lines, ensures a non-interactive Matplotlib backend, optionally adjusts sys.path when os.chdir(...) is used, executes the script, and cleans up the generated file by default.

Usage

You can directly use the tool with uv:

uvx run-ipynb path/to/notebook.ipynb [--keep] [--yes]

Optionally specify a Python interpreter:

uvx run-ipynb path/to/notebook.ipynb --python /path/to/python

You can also rely on your current shell's interpreter by setting RUN_IPYNB_PYTHON:

export RUN_IPYNB_PYTHON=$(which python)
uvx run-ipynb path/to/notebook.ipynb

Otherwise run:

pip install run-ipynb

and then:

run-ipynb path/to/notebook.ipynb [--keep] [--yes]
  • notebook_path: Path to the .ipynb notebook to run
  • -k, --keep: Keep the generated .py file after execution
  • -y, --yes: Automatically overwrite an existing .py file without prompting
  • -p, --python: Python interpreter to execute the generated script (defaults to the current interpreter)

If --python is not provided, run-ipynb checks in order:

  • RUN_IPYNB_PYTHON
  • RUN_IPYNB_ENV_PYTHON
  • active virtual environments (VIRTUAL_ENV, CONDA_PREFIX, MAMBA_PREFIX, Pipenv, Poetry, etc.)
  • which python
  • the interpreter running the CLI

Examples

# Basic: convert, run, and remove the temporary .py file
uvx run-ipynb notebooks/analysis.ipynb

# Keep the .py file for inspection and overwrite if it already exists
uvx run-ipynb notebooks/analysis.ipynb --keep --yes

What it does

  • Converts the notebook with jupyter nbconvert --to script
  • Removes get_ipython().run_line_magic lines
  • Sets Matplotlib backend to Agg for headless environments
  • If os.chdir(...) is detected, appends os.getcwd() to sys.path right after the change
  • Executes the resulting script with your current Python interpreter
  • Deletes the generated .py file unless --keep is passed

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

run_ipynb-0.1.2.tar.gz (182.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

run_ipynb-0.1.2-py3-none-any.whl (4.1 kB view details)

Uploaded Python 3

File details

Details for the file run_ipynb-0.1.2.tar.gz.

File metadata

  • Download URL: run_ipynb-0.1.2.tar.gz
  • Upload date:
  • Size: 182.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for run_ipynb-0.1.2.tar.gz
Algorithm Hash digest
SHA256 b10bd2f976769a761e589e49fb5d0719c8c7623c54b7599e34f874c8c1653ac3
MD5 b14c02cdd7f214d2e92b72afb9df28ab
BLAKE2b-256 c1b18a386411898b15dacb2c7c380d8e0a87ada01fc6e47b5ead3f56df487c16

See more details on using hashes here.

Provenance

The following attestation bundles were made for run_ipynb-0.1.2.tar.gz:

Publisher: release.yaml on dschaub95/run-ipynb

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file run_ipynb-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: run_ipynb-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 4.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for run_ipynb-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 2aa9ae8c1adebdd4327a66824d149c8f60bff34cc5840cbddb23552ba9b4df0d
MD5 395fca69f2db584d3fe57c2b0563041d
BLAKE2b-256 a5667598fe0ca6fa78146c19bed654b7decfa7ac3e8339f1497b249cef028719

See more details on using hashes here.

Provenance

The following attestation bundles were made for run_ipynb-0.1.2-py3-none-any.whl:

Publisher: release.yaml on dschaub95/run-ipynb

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page