17
votes

Les notebooks Jupyter n'affichant pas de barre de progression

J'essaie d'obtenir une barre de progression dans les blocs-notes Jupyter. Ceci est un nouvel ordinateur et ce que je fais normalement ne semble pas fonctionner:

FloatProgress(value=0.0, max=1.0)

Produit la sortie de texte suivante et n'affiche aucune barre de progression

from ipywidgets import FloatProgress
from IPython.display import display
f = FloatProgress(min=0, max=1)
display(f)
for i in [1,2,3,4,5]:
    time.sleep(.1)

De même, ce code:

HBox(children=(IntProgress(value=0, max=5), HTML(value='')))

produit cette sortie texte:

from tqdm import tqdm_notebook
example_iter = [1,2,3,4,5]
for rec in tqdm_notebook(example_iter):
    time.sleep(.1)

Y a-t-il un paramètre qui me manque pour que Jupyter affiche ces barres de progression?


4 commentaires

Rencontrez-vous ce problème dans Jupyter Notebook ou Jupyter Lab?


Où dirigez-vous la cellule? Je reçois le message HBox() uniquement dans PyCharm, mais cela fonctionne bien lorsqu'il est exécuté dans mon navigateur Chrome.


@MihaiChelaru J'ai eu ce problème dans Jupyter Lab.


@Rafay Oui, je ne sais pas si cela a quelque chose à voir avec Jupyter. Peut-être que quelqu'un devrait modifier le titre de la question et les balises pour refléter cela afin qu'il soit clair que la question et la réponse se réfèrent à Jupyter Lab.


3 Réponses :


35
votes

La réponse est dans ce problème GitHub .

La clé est de vous assurer que l'extension de notebook ipywidgets activée à l'aide de la commande suivante:

jupyter labextension install @jupyter-widgets/jupyterlab-manager

Vous devrez également installer l'extension JupyterLab :

jupyter nbextension enable --py widgetsnbextension

EDIT: Comme mentionné dans la documentation d' ipywidgets ainsi que dans certains des commentaires ci-dessous, l'installation de l'extension JupyterLab avec la commande ci-dessus nécessite l' installation de Node.js. Le programme d'installation du site Web Node.js inclut npm , qui est également requis pour que la commande s'exécute correctement.


8 commentaires

J'ai essayé cela avec une version récente de Juypterlab. La deuxième commande prend 10 minutes à s'exécuter et ne résout pas le problème.


Ok, cela fonctionne (partiellement) si vous redémarrez le noyau, fermez la fenêtre Jupyterlab et revenez. Cela n'a fonctionné que partiellement pour moi parce que la barre ne dessine pas, mais je peux au moins voir mes messages apparaître.


@ZephaniahGrunschlag Vous pouvez ajouter votre expérience avec ce correctif sur le fil GitHub que j'ai lié dans ma réponse, ou publier une nouvelle question avec votre problème spécifique ici sur Stack Overflow, et un lien vers cette question pour le contexte. Étant donné que cela a fonctionné pour un certain nombre de personnes, je pense qu'il n'est pas juste pour vous de voter contre ma réponse parce que cela ne fonctionne pas dans votre cas spécifique six mois après avoir publié cette réponse.


Il convient de mentionner que le nœud, js est nécessaire. Je n'utilise pas conda, donc j'ai émis sur un mac 'brew install node'.


J'avais également installé npm. Sinon, l'installation du Lab-Manager a échoué.


souhaite que cela devienne automatiquement installé et activé avec jupyter lab


Au cas où vous auriez besoin de réinstaller nodejs, vous voulez désinstaller la version conda (qui est bloquée à 6.13.1 pour le moment)


Malheureusement, cette solution n'a pas fonctionné pour moi. Avec node.js v12.16.1 et l'extension ipywidgets installés, je reçois toujours la vieille impression statique HBOX(children=...) . Je pense que le @jupyter-widgets/jupyterlab-manager installé, et essayer de l'installer à nouveau provoque le traçage d'environ 20 pages d'une erreur de récursivité.



4
votes

Une considération importante ici est d'avoir une version de nœud> = 10.0.0 pour que cela fonctionne. Pour vérifier la version de votre nœud, utilisez:

jupyter nbextension enable --py widgetsnbextension
jupyter labextension install @jupyter-widgets/jupyterlab-manager

En outre, vous pouvez avoir une version de node> = 10 installée, mais non sélectionnée. Pour vérifier la liste des versions de nœuds installés, vous pouvez utiliser le gestionnaire de versions de nœuds nvm utilisant:

nvm use 12.5.0

Dans l'exemple ci-dessous, la version sélectionnée est 9.11.2:

->      v9.11.2
        v10.4.0
        v12.5.0

Pour résoudre ce problème, je devrai exécuter:

nvm ls

Maintenant, je peux exécuter les deux commandes mentionnées par @Mihai:

node -v

Cela devrait fonctionner maintenant après avoir actualisé l'onglet du navigateur Jupyter .


0 commentaires

0
votes

Si vous n'avez pas de nœud installé, vous pouvez suivre les instructions ici: https://github.com/nodesource/distributions/blob/master/README.md#debinstall

conda install -c conda-forge nodejs
jupyter labextension install @jupyter-widgets/jupyterlab-manager

Mais parfois, il est préférable d'installer via conda:

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
chmod +x Miniconda3-latest-Linux-x86_64.sh
 ./Miniconda3-latest-Linux-x86_64.sh

Puis:

curl -sL https://deb.nodesource.com/setup_15.x | bash -
apt-get install -y nodejsapt-get install -y nodejs

Référence: https://ipywidgets.readthedocs.io/en/latest/user_install.html


0 commentaires