plotly / plotly/plotly.py

Jupyterlab requirement

Abierto
#5,184 1 comentario 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

bug P2 regression
Lenguaje dominante
Python
Estrellas
18.8k
Forks
2.8k
Merge medio
16 h 26 min
PR fusionados (30 d)
21

Descripción

Hi all,

This seems to be related to the PR https://github.com/plotly/plotly.py/pull/5104

The check for jupyterlab is still failing on my end. I have a LabEnv that uses other kernels in other environments. It keeps prod environments lean.

Similar to the original poster of the issue linked to the above PR, I get the following error when trying to plot using plotly.


AttributeError Traceback (most recent call last)
Cell In[10], line 88
85 else:
86 colors.append(DECREASING_COLOR)
---> 88 iplot( fig, filename = 'candlestick-ichimoku' )

File ~/micromamba/envs/trader/lib/python3.12/site-packages/plotly/offline/offline.py:387, in iplot(figure_or_data, show_link, link_text, validate, image, filename, image_width, image_height, config, auto_play, animation_opts)
382 post_script = build_save_image_post_script(
383 image, filename, image_height, image_width, "iplot"
384 )
386 # Show figure
--> 387 pio.show(
388 figure,
389 validate=validate,
390 config=config,
391 auto_play=auto_play,
392 post_script=post_script,
393 animation_opts=animation_opts,
394 )

File ~/micromamba/envs/trader/lib/python3.12/site-packages/plotly/io/_renderers.py:429, in show(fig, renderer, validate, **kwargs)
424 if not nbformat or Version(nbformat.version) < Version("4.2.0"):
425 raise ValueError(
426 "Mime type rendering requires nbformat>=4.2.0 but it is not installed"
427 )
--> 429 display_jupyter_version_warnings()
431 ipython_display.display(bundle, raw=True)
433 # external renderers

File [~/micromamba/envs/trader/lib/python3.12/site-packages/plotly/io/_renderers.py:60]
(http://localhost:8888/home/omagaiii/micromamba/envs/trader/lib/python3.12/site-packages/plotly/io/_renderers.py#line=59), in display_jupyter_version_warnings()
58 elif "jupyter-lab" in parent_process:
59 jupyter_lab = optional_imports.get_module("jupyterlab")
---> 60 if jupyter_lab.version < "3":
61 # Add warning about upgrading jupyterlab
62 warnings.warn(
63 f"Plotly version >= 6 requires JupyterLab >= 3 but you have {jupyter_lab.version} installed. To upgrade JupyterLab, please run pip install jupyterlab --upgrade."
64 )

AttributeError: 'NoneType' object has no attribute 'version'

plotly version:

import plotly
plotly.__version__
'6.0.1'

Python version:

from platform import python_version
python_version()
'3.12.10'

Jupyterlab/host version:

jupyter lab --version 
4.4.1

Jupyterlab/client version:

import jupyter_client
jupyter_client.__version__
'8.6.3'

BTW, the check above for the jupyter_client is probably what needs to be added in the code to fix remote execution. Below is how I 'fixed' it so I can move on for the time being, but probably missing other nuances.

    elif "jupyter-lab" in parent_process:
        jupyter_lab = optional_imports.get_module("jupyterlab") or optional_imports.get_module("jupyter_client")
        if jupyter_lab.__version__ < "3":

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Empieza en plotly/io/_renderers.py, en display_jupyter_version_warnings(), y después inspecciona el comportamiento de optional_imports para jupyterlab y jupyter_client. Reproduce el entorno separado de JupyterLab y del kernel descrito en la issue y verifica que graficar ya no provoque el NoneType AttributeError, mientras la advertencia de versión de JupyterLab siga siendo correcta.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
jupyter, python
Área
data-visualization
Tipo de issue
Error
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
45/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.