Change8

Panel

Data & ML

Panel: The powerful data exploration & web app framework for Python

Latest: v1.9.425 releases2 breaking changes10 common errorsView on GitHub

Release History

View all versions →
v1.9.4
Aug 17, 2026
v1.9.4rc3
Aug 12, 2026
v1.9.4rc2
Aug 11, 2026
v1.9.4rc1
Aug 11, 2026
v1.9.37 fixes
Jun 1, 2026

Panel 1.9.3 is a patch release focused on resolving several bugs across ReactiveESM components, OAuth handling, and development mode document cleanup.

v1.9.3a2
May 31, 2026
v1.9.3a1
May 29, 2026
v1.9.3a0
May 29, 2026
v1.9.23 fixes
May 27, 2026

This patch release (1.9.2) addresses a regression in ReactComponent and fixes a memory leak related to component tracking in non-server contexts.

v1.9.14 fixes
May 23, 2026

This patch release addresses regressions introduced in 1.9.0, primarily fixing Button styling and resolving issues related to ESM and React component lifecycle handling.

v1.9.0Breaking10 fixes7 features
May 21, 2026

Panel 1.9.0 introduces full typing compatibility with Param 2.4.0 and adds support for wildcard routing in `pn.serve`. This release also modernizes the widget API by canonicalizing the label parameter and renaming button style attributes.

v1.9.0rc0
May 19, 2026
v1.8.11a0
Mar 26, 2026
v1.8.1013 fixes3 features
Mar 16, 2026

Panel 1.8.10 delivers stability improvements across widgets, plotting integrations, and server error reporting, alongside addressing several UI and serialization bugs. This release also introduces configuration options for the Panel CDN root.

v1.8.10rc0
Mar 12, 2026
v1.8.91 fix
Mar 3, 2026

This release includes a bug fix related to ESM model serialization and ensures compatibility with VTK version 9.6.0.

v1.8.810 fixes4 features
Mar 2, 2026

Panel 1.8.8 delivers stability improvements, fixes for Pyodide and ESM loading, and introduces an experimental performance enhancement for batch updates via `hold(freeze=True)`. The release also includes numerous UI and event handling bug fixes.

v1.8.72 fixes
Jan 28, 2026

This patch release reverts two disruptive changes from version 1.8.6 and resolves issues related to Tabulator resizing and patched Plotly versions.

v1.8.612 fixes3 features
Jan 26, 2026

This patch release addresses several bugs related to ESM and React components, improves UI robustness, and updates key dependencies like Bokeh and Preact.

v1.8.56 fixes
Dec 30, 2025

This release adds several stability and rendering fixes for notebooks, Tabulator, ESM components, Vega datasets, and Markdown, along with new documentation for FastAPI integration and app conversion guides.

v1.8.410 fixes4 features
Dec 2, 2025

Panel 1.8.4 introduces async support for Tabulator, new configuration toggles, enhanced validation, and numerous bug fixes improving notebook integration and event ordering.

v1.8.38 fixes7 features
Nov 10, 2025

This patch release adds Python 3.14 support, several UI enhancements, a new export capability for Vega panes, and numerous bug fixes and documentation updates.

v1.8.27 fixes4 features
Oct 7, 2025

This patch release adds several UI enhancements, improves static serving and pyodide handling, and fixes regressions, while also providing new deployment guides for Anaconda Notebooks and PythonAnywhere.

v1.8.12 fixes1 feature
Sep 16, 2025

This release adds a configuration option to disable the container popup and includes bug fixes for Tabulator column width handling and croniter default timezone, plus a documentation typo correction.

v1.8.0Breaking15 fixes4 features
Sep 9, 2025

This release adds JSCode support for inline JavaScript, WebSocket reconnection, AVIF images, and resource bundling for WASM, while dropping Bokeh 3.5/3.6 support and updating many component versions.

Common Errors

TypeError3 reports

TypeError in Panel often stems from passing an object to a Panel pane that isn't directly displayable or compatible (e.g., a Matplotlib figure without a suitable display method). Fix this by ensuring the object is either a native Panel component, a supported type like a Bokeh plot, or by using `pn.panel(object)` to automatically convert it to a displayable Panel object, potentially specifying custom rendering options if needed. Alternatively, explore explicitly converting the object to a compatible format (e.g., matplotlib to a static image).

AttributeError3 reports

AttributeError typically occurs when you try to access an attribute or method that does not exist on an object, often due to incorrect naming, a typo, or attempting to use a feature not supported by the current version or configuration. To fix it, carefully review the attribute or method name for typos, ensure it's correctly spelled and capitalized, and verify that the object you're working with actually supports that attribute or method according to its documentation. If you're encountering this with a specific library like Panel, check the library's release notes or issue tracker for known compatibility issues or required updates.

UnboundLocalError2 reports

The UnboundLocalError occurs when a variable is referenced before it has been assigned a value within its scope, often inside a function. Ensure the variable is assigned a value before being used, especially within conditional statements or loops, by initializing it to a default value like None or an empty list before the conditional block containing its use.

RuntimeError2 reports

The "RuntimeError: no running event loop" in Panel often arises when asynchronous operations (like callbacks) are initiated outside of a running `asyncio` event loop, particularly after reloading or during multi-threaded execution. Ensure all Panel apps and their asynchronous callbacks are initialized and executed within the main thread's event loop by using `panel.serve` or `panel.show` correctly, and avoid creating new loops within threads or reload contexts. If running asynchronous code outside the main thread, explicitly set the default event loop using `asyncio.set_event_loop` within that thread.

ModuleNotFoundError2 reports

The "ModuleNotFoundError" in Panel usually arises from missing dependencies or incorrect import paths, especially when packaging for environments like Pyodide. Resolve this by ensuring all necessary packages are listed in your environment file (e.g., requirements.txt) and that import statements correctly reflect the module's location within the installed package. For environments like Pyodide, verify package availability and consider using Panel's specific packaging tools for compatible deployment.

SyntaxError1 report

SyntaxError in panel often arises from code incompatible with Python's syntax, frequently due to IPython magic commands (e.g., `%run`) used outside of IPython environments. To fix this, either remove the non-Python syntax or ensure the code is executed within an environment that supports it, such as a Jupyter Notebook or IPython interactive session. If running a script, rewrite the code to avoid IPython specific commands.

Related Data & ML Packages

Subscribe to Updates

Get notified when new versions are released

RSS Feed