Giter Club home page Giter Club logo

Comments (10)

ianhi avatar ianhi commented on June 16, 2024

@pythonic2020 can you please post the output of the command in the bug report: python -c "import sys; print('\n',sys.version); import ipympl; print('ipympl version:', ipympl.__version__)" && jupyter --version && jupyter nbextension list && jupyter labextension list

When I make a new environment with mamba create -n test -c conda-forge notebook ipympl it works in notebook so I suspect something is wrong in your environment.

from ipympl.

pythonic2020 avatar pythonic2020 commented on June 16, 2024

Note that I just updated my conda env to notebook 6.5.3 today.

3.9.16 | packaged by conda-forge | (main, Feb 1 2023, 21:28:38) [MSC v.1929 64 bit (AMD64)]
ipympl version: 0.9.3
Selected Jupyter core packages...
IPython : 8.11.0
ipykernel : 6.21.3
ipywidgets : 8.0.4
jupyter_client : 8.0.3
jupyter_core : 5.2.0
jupyter_server : 2.4.0
jupyterlab : 3.6.1
nbclient : 0.7.2
nbconvert : 7.2.9
nbformat : 5.7.3
notebook : 6.5.3
qtconsole : not installed
traitlets : 5.9.0
Known nbextensions:
config dir: C:\Users\me\Miniconda3\envs\forge39\etc\jupyter\nbconfig
notebook section
jupyter-matplotlib/extension enabled
jupyter_bokeh/extension enabled
jupyterlab-plotly/extension enabled
jupyter-js-widgets/extension enabled

  - Validating: ok
  - Validating: ok
  - Validating: ok
  - Validating: ok

JupyterLab v3.6.1
C:\Users\me\Miniconda3\envs\forge39\share\jupyter\labextensions
jupyter-matplotlib v0.11.3 enabled ok
jupyterlab-plotly v5.13.1 enabled ok
jupyterlab_pygments v0.2.2 enabled ok (python, jupyterlab_pygments)
@bokeh/jupyter_bokeh v3.0.5 enabled ok (python, jupyter_bokeh)
@jupyter-widgets/jupyterlab-manager v5.0.5 enabled ok (python, jupyterlab_widgets)

There is no error, but the kernel becomes intermittent when I run ipympl-related 3d interactive plotting in classic notebook 6.5.3 (see example code below from ipympl docs). Rotating the plot with the mouse works for a while, then the kernel breaks, after which interactive functions will not work.

%matplotlib widget

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import axes3d

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

# Grab some test data.
X, Y, Z = axes3d.get_test_data(0.05)

# Plot a basic wireframe.
ax.plot_wireframe(X, Y, Z, rstride=10, cstride=10)

plt.show()

from ipympl.

ianhi avatar ianhi commented on June 16, 2024

then the kernel breaks, after which interactive functions will not work.

Are there any error messages printed to the terminal you started the notebook from? Also can you check if there are error messages in the browser console: https://balsamiq.com/support/faqs/browserconsole/

from ipympl.

pythonic2020 avatar pythonic2020 commented on June 16, 2024
AssertionError
[I 04:11:31.982 NotebookApp] Starting buffering for 17a5fa29-bfdb-4a64-9b5c-03f2051ce9b8:f23f5821d4cd48d8a8ee97b5bed74ea2
Task exception was never retrieved
future: <Task finished name='Task-268' coro=<WebSocketProtocol13.write_message.<locals>.wrapper() done, defined at C:\Users\me\Miniconda3\envs\forge39\lib\site-packages\tornado\websocket.py:1090> exception=WebSocketClosedError()>
Traceback (most recent call last):
  File "C:\Users\me\Miniconda3\envs\forge39\lib\site-packages\tornado\websocket.py", line 1092, in wrapper
    await fut
tornado.iostream.StreamClosedError: Stream is closed

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\me\Miniconda3\envs\forge39\lib\asyncio\tasks.py", line 256, in __step
    result = coro.send(None)
  File "C:\Users\me\Miniconda3\envs\forge39\lib\site-packages\tornado\websocket.py", line 1094, in wrapper
    raise WebSocketClosedError()
tornado.websocket.WebSocketClosedError

Then the connection restarts:

[I 04:11:32.998 NotebookApp] Restoring connection for 17a5fa29-bfdb-4a64-9b5c-03f2051ce9b8:f23f5821d4cd48d8a8ee97b5bed74ea2

I have tornado 6.2 installed:

#
# Name                    Version                   Build  Channel
tornado                   6.2              py39ha55989b_1    conda-forge
pyzmq                     25.0.0           py39hea35a22_0    conda-forge

Second run:

[E 04:17:52.984 NotebookApp] Uncaught exception, closing connection.
    Traceback (most recent call last):
      File "C:\Users\me\Miniconda3\envs\forge39\lib\site-packages\tornado\iostream.py", line 702, in _handle_events
        self._handle_write()
      File "C:\Users\me\Miniconda3\envs\forge39\lib\site-packages\tornado\iostream.py", line 976, in _handle_write
        self._write_buffer.advance(num_bytes)
      File "C:\Users\me\Miniconda3\envs\forge39\lib\site-packages\tornado\iostream.py", line 182, in advance
        assert 0 < size <= self._size
    AssertionError
Exception in callback None()
handle: <Handle cancelled>
Traceback (most recent call last):
  File "C:\Users\me\Miniconda3\envs\forge39\lib\asyncio\events.py", line 80, in _run
    self._context.run(self._callback, *self._args)
  File "C:\Users\me\Miniconda3\envs\forge39\lib\site-packages\tornado\platform\asyncio.py", line 206, in _handle_events
    handler_func(fileobj, events)
  File "C:\Users\me\Miniconda3\envs\forge39\lib\site-packages\tornado\iostream.py", line 702, in _handle_events
    self._handle_write()
  File "C:\Users\me\Miniconda3\envs\forge39\lib\site-packages\tornado\iostream.py", line 976, in _handle_write
    self._write_buffer.advance(num_bytes)
  File "C:\Users\me\Miniconda3\envs\forge39\lib\site-packages\tornado\iostream.py", line 182, in advance
    assert 0 < size <= self._size
AssertionError
[W 04:17:52.988 NotebookApp] zmq message arrived on closed channel
[W 04:17:52.991 NotebookApp] zmq message arrived on closed channel
[I 04:17:52.991 NotebookApp] Starting buffering for 17a5fa29-bfdb-4a64-9b5c-03f2051ce9b8:f23f5821d4cd48d8a8ee97b5bed74ea2
[W 04:17:52.993 NotebookApp] zmq message arrived on closed channel

There are no pertinent messages in Firefox browser console.

Third run, kernel really quits this time, will not restart:

[E 04:24:37.686 NotebookApp] Uncaught exception in ZMQStream callback
    Traceback (most recent call last):
      File "C:\Users\me\Miniconda3\envs\forge39\lib\site-packages\zmq\eventloop\zmqstream.py", line 584, in _run_callback
        f = callback(*args, **kwargs)
      File "C:\Users\me\Miniconda3\envs\forge39\lib\site-packages\zmq\eventloop\zmqstream.py", line 308, in stream_callback
        return callback(self, msg)
      File "C:\Users\me\Miniconda3\envs\forge39\lib\site-packages\notebook\services\kernels\handlers.py", line 572, in _on_zmq_reply
        super()._on_zmq_reply(stream, msg)
      File "C:\Users\me\Miniconda3\envs\forge39\lib\site-packages\notebook\base\zmqhandlers.py", line 256, in _on_zmq_reply
        self.write_message(msg, binary=isinstance(msg, bytes))
      File "C:\Users\me\Miniconda3\envs\forge39\lib\site-packages\tornado\websocket.py", line 339, in write_message
        return self.ws_connection.write_message(message, binary=binary)
      File "C:\Users\me\Miniconda3\envs\forge39\lib\site-packages\tornado\websocket.py", line 1086, in write_message
        fut = self._write_frame(True, opcode, message, flags=flags)
      File "C:\Users\me\Miniconda3\envs\forge39\lib\site-packages\tornado\websocket.py", line 1061, in _write_frame
        return self.stream.write(frame)
      File "C:\Users\me\Miniconda3\envs\forge39\lib\site-packages\tornado\iostream.py", line 546, in write
        self._handle_write()
      File "C:\Users\me\Miniconda3\envs\forge39\lib\site-packages\tornado\iostream.py", line 976, in _handle_write
        self._write_buffer.advance(num_bytes)
      File "C:\Users\me\Miniconda3\envs\forge39\lib\site-packages\tornado\iostream.py", line 182, in advance
        assert 0 < size <= self._size
    AssertionError
[E 04:24:37.688 NotebookApp] Uncaught exception in zmqstream callback
    Traceback (most recent call last):
      File "C:\Users\me\Miniconda3\envs\forge39\lib\site-packages\zmq\eventloop\zmqstream.py", line 621, in _handle_events
        self._handle_recv()
      File "C:\Users\me\Miniconda3\envs\forge39\lib\site-packages\zmq\eventloop\zmqstream.py", line 650, in _handle_recv
        self._run_callback(callback, msg)
      File "C:\Users\me\Miniconda3\envs\forge39\lib\site-packages\zmq\eventloop\zmqstream.py", line 584, in _run_callback
        f = callback(*args, **kwargs)
      File "C:\Users\me\Miniconda3\envs\forge39\lib\site-packages\zmq\eventloop\zmqstream.py", line 308, in stream_callback
        return callback(self, msg)
      File "C:\Users\me\Miniconda3\envs\forge39\lib\site-packages\notebook\services\kernels\handlers.py", line 572, in _on_zmq_reply
        super()._on_zmq_reply(stream, msg)
      File "C:\Users\me\Miniconda3\envs\forge39\lib\site-packages\notebook\base\zmqhandlers.py", line 256, in _on_zmq_reply
        self.write_message(msg, binary=isinstance(msg, bytes))
      File "C:\Users\me\Miniconda3\envs\forge39\lib\site-packages\tornado\websocket.py", line 339, in write_message
        return self.ws_connection.write_message(message, binary=binary)
      File "C:\Users\me\Miniconda3\envs\forge39\lib\site-packages\tornado\websocket.py", line 1086, in write_message
        fut = self._write_frame(True, opcode, message, flags=flags)
      File "C:\Users\me\Miniconda3\envs\forge39\lib\site-packages\tornado\websocket.py", line 1061, in _write_frame
        return self.stream.write(frame)
      File "C:\Users\me\Miniconda3\envs\forge39\lib\site-packages\tornado\iostream.py", line 546, in write
        self._handle_write()
      File "C:\Users\me\Miniconda3\envs\forge39\lib\site-packages\tornado\iostream.py", line 976, in _handle_write
        self._write_buffer.advance(num_bytes)
      File "C:\Users\me\Miniconda3\envs\forge39\lib\site-packages\tornado\iostream.py", line 182, in advance
        assert 0 < size <= self._size

from ipympl.

pythonic2020 avatar pythonic2020 commented on June 16, 2024

If I create a new, fresh conda-forge based Python 3.9 env and install just matplotlib, notebook, and ipympl (and required dependencies), the issue still occurs.

from ipympl.

ianhi avatar ianhi commented on June 16, 2024

Those errors seem to be upstream of ipympl. Can you try this code:

from ipywidgets import IntSlider

slider = IntSlider()
display(slider)

If I create a new, fresh conda-forge based Python 3.9 env and install just matplotlib, notebook, and ipympl (and required dependencies), the issue still occurs.

Can you post the exact command you used to make the new env

from ipympl.

pythonic2020 avatar pythonic2020 commented on June 16, 2024

Your IntSlider code above works perfectly in a classic notebook.

Env creation:

conda create -n ipympl39 -c conda-forge python=3.9
conda activate ipympl39 
conda config --env --set channel_priority flexible
conda config --env --add channels conda-forge
conda config --env --show channels
conda config --env --show channel_priority
conda update --all
conda install matplotlib notebook ipympl

After the above env creation and package installation, all packages are from conda-forge repo.

Output of the info command in the new env (jupyterlab not installed):

3.9.16 | packaged by conda-forge | (main, Feb  1 2023, 21:28:38) [MSC v.1929 64 bit (AMD64)]
ipympl version: 0.9.3
Selected Jupyter core packages...
IPython          : 8.11.0
ipykernel        : 6.21.3
ipywidgets       : 8.0.4
jupyter_client   : 8.0.3
jupyter_core     : 5.2.0
jupyter_server   : 2.4.0
jupyterlab       : not installed
nbclient         : 0.7.2
nbconvert        : 7.2.9
nbformat         : 5.7.3
notebook         : 6.5.3
qtconsole        : not installed
traitlets        : 5.9.0
Known nbextensions:
  config dir: C:\Users\me\Miniconda3\envs\ipympl39\etc\jupyter\nbconfig
    notebook section
      jupyter-matplotlib/extension enabled 
      jupyter-js-widgets/extension enabled 

      - Validating: ok
      - Validating: ok
usage: jupyter [-h] [--version] [--config-dir] [--data-dir] [--runtime-dir]
               [--paths] [--json] [--debug]
               [subcommand]

Jupyter: Interactive Computing

positional arguments:
  subcommand     the subcommand to launch

optional arguments:
  -h, --help     show this help message and exit
  --version      show the versions of core jupyter packages and exit
  --config-dir   show Jupyter config dir
  --data-dir     show Jupyter data dir
  --runtime-dir  show Jupyter runtime dir
  --paths        show all Jupyter paths. Add --json for machine-readable
                 format.
  --json         output paths as machine-readable json
  --debug        output debug information about paths

Available subcommands: bundlerextension dejavu events execute kernel
kernelspec migrate nbclassic nbclassic.exe.c~ nbconvert nbextension notebook
run script server serverextension troubleshoot trust

Jupyter command `jupyter-labextension` not found.

from ipympl.

pythonic2020 avatar pythonic2020 commented on June 16, 2024

I tried the 3d code in my new env in a classic notebook in MS Edge, and got these Jupyter terminal errors. Note "AttributeError: 'NoneType' object has no attribute 'advance'".

[E 09:37:21.655 NotebookApp] Exception in callback functools.partial(<function ZMQStream._update_handler.<locals>.<lambda> at 0x0000026BA5D67C10>)
    Traceback (most recent call last):
      File "C:\Users\me\Miniconda3\envs\ipympl39\lib\site-packages\tornado\ioloop.py", line 740, in _run_callback
        ret = callback()
      File "C:\Users\me\Miniconda3\envs\ipympl39\lib\site-packages\zmq\eventloop\zmqstream.py", line 705, in <lambda>
        self.io_loop.add_callback(lambda: self._handle_events(self.socket, 0))
      File "C:\Users\me\Miniconda3\envs\ipympl39\lib\site-packages\zmq\eventloop\zmqstream.py", line 621, in _handle_events
        self._handle_recv()
      File "C:\Users\me\Miniconda3\envs\ipympl39\lib\site-packages\zmq\eventloop\zmqstream.py", line 650, in _handle_recv
        self._run_callback(callback, msg)
      File "C:\Users\me\Miniconda3\envs\ipympl39\lib\site-packages\zmq\eventloop\zmqstream.py", line 584, in _run_callback
        f = callback(*args, **kwargs)
      File "C:\Users\me\Miniconda3\envs\ipympl39\lib\site-packages\zmq\eventloop\zmqstream.py", line 308, in stream_callback
        return callback(self, msg)
      File "C:\Users\me\Miniconda3\envs\ipympl39\lib\site-packages\notebook\services\kernels\handlers.py", line 572, in _on_zmq_reply
        super()._on_zmq_reply(stream, msg)
      File "C:\Users\me\Miniconda3\envs\ipympl39\lib\site-packages\notebook\base\zmqhandlers.py", line 256, in _on_zmq_reply
        self.write_message(msg, binary=isinstance(msg, bytes))
      File "C:\Users\me\Miniconda3\envs\ipympl39\lib\site-packages\tornado\websocket.py", line 339, in write_message
        return self.ws_connection.write_message(message, binary=binary)
      File "C:\Users\me\Miniconda3\envs\ipympl39\lib\site-packages\tornado\websocket.py", line 1086, in write_message
        fut = self._write_frame(True, opcode, message, flags=flags)
      File "C:\Users\me\Miniconda3\envs\ipympl39\lib\site-packages\tornado\websocket.py", line 1061, in _write_frame
        return self.stream.write(frame)
      File "C:\Users\me\Miniconda3\envs\ipympl39\lib\site-packages\tornado\iostream.py", line 546, in write
        self._handle_write()
      File "C:\Users\me\Miniconda3\envs\ipympl39\lib\site-packages\tornado\iostream.py", line 976, in _handle_write
        self._write_buffer.advance(num_bytes)
    AttributeError: 'NoneType' object has no attribute 'advance'

from ipympl.

pythonic2020 avatar pythonic2020 commented on June 16, 2024

Using notebook 7.0.0, ipympl works fine!

from ipympl.

pythonic2020 avatar pythonic2020 commented on June 16, 2024

ipympl 0.9.3 works fine in notebook 6.5.5 in a python 3.9.17 environment! "Case" closed. :-)

from ipympl.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.