plotly / plotly/plotly.py

Jupyterlab requirement

Ouverte
#5,184 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

bug P2 regression
Langage dominant
Python
Étoiles
18.8k
Forks
2.8k
Merge moyen
16 h 26 min
PR mergées (30 j)
21

Description

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":

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez dans plotly/io/_renderers.py, au niveau de display_jupyter_version_warnings(), puis examinez le comportement de optional_imports pour jupyterlab et jupyter_client. Reproduisez l’environnement JupyterLab et kernel séparé décrit dans l’issue et vérifiez que le tracé ne lève plus de NoneType AttributeError, tandis que l’avertissement de version de JupyterLab reste correct.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
jupyter, python
Domaine
data-visualization
Type d'issue
Bug
Difficulté
3/5
Temps estimé
1-2 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
45/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.