Iām not sure this is the right place to put my troubles, but at least it consolidates solutions to this error (as far as I can tell itās identical). I get this same error when running Projections.ipynb
with
- osx
- clean conda install
- follow the geoviews install instructions
The problem persists after
conda update -all
installing dev versions of both geoviews and holoviews
Specifically, the final line of the second code box:
(gv.tile_sources.Wikipedia * cities_latlon * cities_mercator).options('Points', **options)
produces the error
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
~/opt/anaconda3/lib/python3.7/site-packages/IPython/core/formatters.py in __call__(self, obj, include, exclude)
968
969 if method is not None:
--> 970 return method(include=include, exclude=exclude)
971 return None
972 else:
~/opt/anaconda3/lib/python3.7/site-packages/holoviews/core/dimension.py in _repr_mimebundle_(self, include, exclude)
1302 combined and returned.
1303 """
-> 1304 return Store.render(self)
1305
1306
~/opt/anaconda3/lib/python3.7/site-packages/holoviews/core/options.py in render(cls, obj)
1393 data, metadata = {}, {}
1394 for hook in hooks:
-> 1395 ret = hook(obj)
1396 if ret is None:
1397 continue
~/opt/anaconda3/lib/python3.7/site-packages/holoviews/ipython/display_hooks.py in pprint_display(obj)
280 if not ip.display_formatter.formatters['text/plain'].pprint:
281 return None
--> 282 return display(obj, raw_output=True)
283
284
~/opt/anaconda3/lib/python3.7/site-packages/holoviews/ipython/display_hooks.py in display(obj, raw_output, **kwargs)
250 elif isinstance(obj, (CompositeOverlay, ViewableElement)):
251 with option_state(obj):
--> 252 output = element_display(obj)
253 elif isinstance(obj, (Layout, NdLayout, AdjointLayout)):
254 with option_state(obj):
~/opt/anaconda3/lib/python3.7/site-packages/holoviews/ipython/display_hooks.py in wrapped(element)
144 try:
145 max_frames = OutputSettings.options['max_frames']
--> 146 mimebundle = fn(element, max_frames=max_frames)
147 if mimebundle is None:
148 return {}, {}
~/opt/anaconda3/lib/python3.7/site-packages/holoviews/ipython/display_hooks.py in element_display(element, max_frames)
190 return None
191
--> 192 return render(element)
193
194
~/opt/anaconda3/lib/python3.7/site-packages/holoviews/ipython/display_hooks.py in render(obj, **kwargs)
66 renderer = renderer.instance(fig='png')
67
---> 68 return renderer.components(obj, **kwargs)
69
70
~/opt/anaconda3/lib/python3.7/site-packages/holoviews/plotting/renderer.py in components(self, obj, fmt, comm, **kwargs)
363 doc = Document()
364 with config.set(embed=embed):
--> 365 model = plot.layout._render_model(doc, comm)
366 return render_model(model, comm) if embed else render_mimebundle(model, doc, comm)
367 else:
~/opt/anaconda3/lib/python3.7/site-packages/panel/viewable.py in _render_model(self, doc, comm)
363 if comm is None:
364 comm = state._comm_manager.get_server_comm()
--> 365 model = self.get_root(doc, comm)
366
367 if config.embed:
~/opt/anaconda3/lib/python3.7/site-packages/panel/viewable.py in get_root(self, doc, comm)
534 """
535 doc = doc or _curdoc()
--> 536 root = self._get_model(doc, comm=comm)
537 self._preprocess(root)
538 ref = root.ref['id']
~/opt/anaconda3/lib/python3.7/site-packages/panel/layout.py in _get_model(self, doc, root, parent, comm)
134 if root is None:
135 root = model
--> 136 objects = self._get_objects(model, [], doc, root, comm)
137 props = dict(self._init_properties(), objects=objects)
138 model.update(**self._process_param_change(props))
~/opt/anaconda3/lib/python3.7/site-packages/panel/layout.py in _get_objects(self, model, old_objects, doc, root, comm)
124 else:
125 try:
--> 126 child = pane._get_model(doc, root, model, comm)
127 except RerenderError:
128 return self._get_objects(model, current_objects[:i], doc, root, comm)
~/opt/anaconda3/lib/python3.7/site-packages/panel/pane/holoviews.py in _get_model(self, doc, root, parent, comm)
225 plot = self.object
226 else:
--> 227 plot = self._render(doc, comm, root)
228
229 plot.pane = self
~/opt/anaconda3/lib/python3.7/site-packages/panel/pane/holoviews.py in _render(self, doc, comm, root)
284 kwargs = {}
285
--> 286 return renderer.get_plot(self.object, **kwargs)
287
288 def _cleanup(self, root):
~/opt/anaconda3/lib/python3.7/site-packages/holoviews/plotting/bokeh/renderer.py in get_plot(self_or_cls, obj, doc, renderer, **kwargs)
71 combining the bokeh model with another plot.
72 """
---> 73 plot = super(BokehRenderer, self_or_cls).get_plot(obj, doc, renderer, **kwargs)
74 if plot.document is None:
75 plot.document = Document() if self_or_cls.notebook_context else curdoc()
~/opt/anaconda3/lib/python3.7/site-packages/holoviews/plotting/renderer.py in get_plot(self_or_cls, obj, doc, renderer, comm, **kwargs)
217 obj = Layout(obj)
218 plot = self_or_cls.plotting_class(obj)(obj, renderer=renderer,
--> 219 **plot_opts)
220 defaults = [kd.default for kd in plot.dimensions]
221 init_key = tuple(v if d is None else d for v, d in
~/opt/anaconda3/lib/python3.7/site-packages/geoviews/plotting/bokeh/plot.py in __init__(self, element, **params)
179
180 def __init__(self, element, **params):
--> 181 super(GeoOverlayPlot, self).__init__(element, **params)
182 self.geographic = any(element.traverse(is_geographic, [_Element]))
183 if self.geographic:
~/opt/anaconda3/lib/python3.7/site-packages/geoviews/plotting/bokeh/plot.py in __init__(self, element, **params)
61
62 def __init__(self, element, **params):
---> 63 super(GeoPlot, self).__init__(element, **params)
64 self.geographic = is_geographic(self.hmap.last)
65 if self.geographic and not isinstance(self.projection, (PlateCarree, Mercator)):
~/opt/anaconda3/lib/python3.7/site-packages/holoviews/plotting/plot.py in __init__(self, overlay, ranges, batched, keys, group_counter, **params)
1449 def __init__(self, overlay, ranges=None, batched=True, keys=None, group_counter=None, **params):
1450 if 'projection' not in params:
-> 1451 params['projection'] = self._get_projection(overlay)
1452
1453 super(GenericOverlayPlot, self).__init__(overlay, ranges=ranges, keys=keys,
~/opt/anaconda3/lib/python3.7/site-packages/geoviews/plotting/plot.py in _get_projection(self, obj)
34 [CompositeOverlay, Element],
35 keyfn=isoverlay, defaults=False)
---> 36 from_overlay = not all(p is None for p in opts[True]['projection'])
37 projections = opts[from_overlay]['projection']
38 infer = any(opts[from_overlay]['infer_projection']) or self.infer_projection
KeyError: 'projection'
Thanks in advance for your insights.