Black Lives Matter. Please consider donating to Black Girls Code today.

Fig.show() stop opening browser tab after python upgrade

hello. i’ve recently changed from a notbook to a desktop.
so i updated my lubuntu from 18.04 to 20.04.
also, my python is now 3.8.5, and plotly 4.11.0

my python script reads daat in a file, builds matrices and plots them.
it used to work well.
now, the browser window is no longer opening, when i type fig.show()

here is the error

  File "/home/operations/Documents/GF/freqtrade/0/freqtrade/.env/lib/python3.8/site-packages/plotly/io/_renderers.py", line 519, in <module>
    webbrowser.get()
  File "/usr/lib/python3.8/webbrowser.py", line 42, in get
    register_standard_browsers()
  File "/usr/lib/python3.8/webbrowser.py", line 551, in register_standard_browsers
    raw_result = subprocess.check_output(cmd, stderr=subprocess.DEVNULL)
  File "/usr/lib/python3.8/subprocess.py", line 411, in check_output
    return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
  File "/usr/lib/python3.8/subprocess.py", line 491, in run
    stdout, stderr = process.communicate(input, timeout=timeout)
  File "/usr/lib/python3.8/subprocess.py", line 1011, in communicate
    stdout = self.stdout.read()
KeyboardInterrupt

what additional info you’d need me to post here?
thank you.

fernando a. bender

*** update

i just tried it with this example from your website

import plotly.graph_objects as go
fig = go.Figure(data=go.Bar(y=[2, 3, 1]))
fig.show()

and it does not yield and error, not it loads the borwser or opens a new tab on it, if it’s already opened.
as i press ctrl+c, it yields

(.env) operations@concordia:~/Documents/GF/freqtrade/0/freqtrade/my_test$ python test.py 
^CTraceback (most recent call last):
  File "test.py", line 3, in <module>
    fig.show()
  File "/home/operations/Documents/GF/freqtrade/0/freqtrade/.env/lib/python3.8/site-packages/plotly/basedatatypes.py", line 2871, in show
    return pio.show(self, *args, **kwargs)
  File "/home/operations/Documents/GF/freqtrade/0/freqtrade/.env/lib/python3.8/site-packages/plotly/io/_renderers.py", line 392, in show
    renderers._perform_external_rendering(fig_dict, renderers_string=renderer, **kwargs)
  File "/home/operations/Documents/GF/freqtrade/0/freqtrade/.env/lib/python3.8/site-packages/plotly/io/_renderers.py", line 341, in _perform_external_rendering
    renderer.render(fig_dict)
  File "/home/operations/Documents/GF/freqtrade/0/freqtrade/.env/lib/python3.8/site-packages/plotly/io/_base_renderers.py", line 739, in render
    open_html_in_browser(html, self.using, self.new, self.autoraise)
  File "/home/operations/Documents/GF/freqtrade/0/freqtrade/.env/lib/python3.8/site-packages/plotly/io/_base_renderers.py", line 688, in open_html_in_browser
    server.handle_request()
  File "/usr/lib/python3.8/socketserver.py", line 294, in handle_request
    ready = selector.select(timeout)
  File "/usr/lib/python3.8/selectors.py", line 415, in select
    fd_event_list = self._selector.poll(timeout)
KeyboardInterrupt

so, it’s not my code. perhaps it’s now outdated.
any hints?