Another options is Dash Leaflet. I guess you could achieve the desired behavior simply by adding a ToopTip. Here is a small example,
import dash
import dash_html_components as html
import dash_leaflet as dl
# Create a geojson object.
polygon = dict(type='Polygon', coordinates=([[(-104, 39), (-104, 45), (-90, 39), (-104, 39)]]))
data = dict(type='FeatureCollection', features=[polygon])
geojson = dl.GeoJSON(id='geojson_layer', data=data, zoomToBounds=True, children=dl.Tooltip("Hello"))
# Create an example app.
app = dash.Dash()
app.layout = html.Div([dl.Map([dl.TileLayer(), geojson], style=dict(height='50vh'), id="map")])
if __name__ == '__main__':
app.run_server(port=9988)