While trying to revive an old app of mine, I ran into a weird problem. The panel info
from my freshly install conda env is
Python version : 3.12.10 | packaged by conda-forge | (main, Apr 10 2025, 22:08:16) [MSC v.1943 64 bit (AMD64)]
IPython version : 9.2.0
Tornado version : 6.4.2
NumPy version : 2.2.5
Bokeh version : 3.7.2
BokehJS static path : C:\Users\felder\AppData\Local\mambaforge\envs\panel\Lib\site-packages\bokeh\server\static
node.js version : v20.10.0
npm version : 10.2.3
jupyter_bokeh version : (not installed)
Operating system : Windows-11-10.0.26100-SP0
Here is my test code:
import holoviews as hv
import numpy as np
import pandas as pd
import panel as pn
pn.extension("tabulator") # <- leave holoviews out!
df = pd.DataFrame(dict(id=[1, 2, 3], amp=[1, 0.7, 1.3], freq=[1, 2, 0.5]))
def row_plot(row):
x = np.linspace(0, 2 * np.pi, 200)
y = row.amp * np.sin(row.freq * x)
curve = hv.Curve((x, y)).opts(width=450, height=220) # <- fixed size
return pn.pane.HoloViews(curve) # displays nothing!
# return pn.pane.Markdown(str(curve)) # displays text correctly
tab = pn.widgets.Tabulator(
df,
row_content=row_plot,
embed_content=False, # makes not difference
height=240,
sizing_mode="stretch_width",
)
# make another dummy plot
def dummy_plot():
x = np.linspace(0, 2 * np.pi, 200)
y = np.sin(x)
curve = hv.Curve((x, y)).opts(width=450, height=220) # <- fixed size
return pn.pane.HoloViews(curve) # displays correctly
pn.Column("### Click a ▸ – a sine wave should appear", tab, dummy_plot()).servable()
I’m running this with panel serve testapp.py
.
As you can see from the comments, I get a standalone Holoviews plot alright, and Markdown row_content
. But plots in the row_content
fail to appear. Browser console says “bokeh rendered successfully”, no errors in Python console, Private tab makes no difference, developer tools show a row_content
<div> when using Markdown, but the Holoviews plot does not show up in a <div>: nothing happens to the DOM when I click the triangle. Same effect when reinstalling the conda env under Linux. I’m at a loss here.
Even the best AI can’t make my row content plot reappear. Can you?