jupyter-widgets / pythreejs

A Jupyter - Three.js bridge
https://pythreejs.readthedocs.io
Other
934 stars 185 forks source link

display error (type error) #337

Closed threepebbles closed 3 years ago

threepebbles commented 3 years ago

I'm just trying to run an example code in https://github.com/jupyter-widgets/pythreejs/blob/master/examples/Examples.ipynb in jupyter lab. But an error occured and nothing is displayed.

Screenshot from 2020-10-06 04-02-01

Here is the full log:


TypeError                                 Traceback (most recent call last)
~/anaconda3/envs/js/lib/python3.8/site-packages/ipywidgets/widgets/widget.py in _handle_msg(self, msg)
    674                 if 'buffer_paths' in data:
    675                     _put_buffers(state, data['buffer_paths'], msg['buffers'])
--> 676                 self.set_state(state)
    677 
    678         # Handle a state request.

~/anaconda3/envs/js/lib/python3.8/site-packages/ipywidgets/widgets/widget.py in set_state(self, sync_data)
    543                     from_json = self.trait_metadata(name, 'from_json',
    544                                                     self._trait_from_json)
--> 545                     self.set_trait(name, from_json(sync_data[name], self))
    546 
    547     def send(self, content, buffers=None):

~/anaconda3/envs/js/lib/python3.8/site-packages/traitlets/traitlets.py in set_trait(self, name, value)
   1434                                 (cls.__name__, name))
   1435         else:
-> 1436             getattr(cls, name).set(self, value)
   1437 
   1438     @classmethod

~/anaconda3/envs/js/lib/python3.8/site-packages/traitlets/traitlets.py in set(self, obj, value)
    576 
    577     def set(self, obj, value):
--> 578         new_value = self._validate(obj, value)
    579         try:
    580             old_value = obj._trait_values[self.name]

~/anaconda3/envs/js/lib/python3.8/site-packages/traitlets/traitlets.py in _validate(self, obj, value)
    608             return value
    609         if hasattr(self, 'validate'):
--> 610             value = self.validate(obj, value)
    611         if obj._cross_validation_lock is False:
    612             value = self._cross_validate(obj, value)

~/anaconda3/envs/js/lib/python3.8/site-packages/traitlets/traitlets.py in validate(self, obj, value)
   2470             return value
   2471 
-> 2472         value = self.validate_elements(obj, value)
   2473 
   2474         return value

~/anaconda3/envs/js/lib/python3.8/site-packages/traitlets/traitlets.py in validate_elements(self, obj, value)
   2707         for t, v in zip(self._traits, value):
   2708             try:
-> 2709                 v = t._validate(obj, v)
   2710             except TraitError as error:
   2711                 self.error(obj, v, error)

~/anaconda3/envs/js/lib/python3.8/site-packages/traitlets/traitlets.py in _validate(self, obj, value)
    608             return value
    609         if hasattr(self, 'validate'):
--> 610             value = self.validate(obj, value)
    611         if obj._cross_validation_lock is False:
    612             value = self._cross_validate(obj, value)

~/anaconda3/envs/js/lib/python3.8/site-packages/traitlets/traitlets.py in validate(self, obj, value)
   2091     def validate(self, obj, value):
   2092         try:
-> 2093             value = float(value)
   2094         except Exception:
   2095             self.error(obj, value)

TypeError: float() argument must be a string or a number, not 'NoneType'

What should I do for fixing this error? Thanks for all your help in advance.

vidartf commented 3 years ago

What version of pythreejs/traitlets do you have installed?

threepebbles commented 3 years ago

What version of pythreejs/traitlets do you have installed?

I'm using pythreejs 2.2.0 / traitlets 5.0.4.

vidartf commented 3 years ago

Probably a duplicate of #334. I just pushed a fix for that, so hopefully that will fix this issue as well.

vidartf commented 3 years ago

Closing for now, will reopen if that was not a fix for everyone (did fix the problem for me locally).

threepebbles commented 3 years ago

After pip install pythreejs --upgrade, it works well. Thank you!