jupyterlite / xeus-python-kernel

xeus-python in JupyterLite
https://xeus-python-kernel.readthedocs.io
BSD 3-Clause "New" or "Revised" License
30 stars 19 forks source link

xeus-python kernel doesn't start with firefox #110

Closed nthiery closed 1 year ago

nthiery commented 1 year ago

Description

Reproduce

  1. Open firefox
  2. Go to https://jupyterlite.github.io/xeus-python-demo/retro/notebooks/?path=demo.ipynb
  3. Execute first cell

The execution hangs at [*]: import this

Expected behavior

See the zen of Python

Context

Browser Output
Unsatisfied version 5.5.2 from _JUPYTERLAB.CORE_OUTPUT of shared singleton module @jupyterlab/coreutils (required ^5.6.1) remoteEntry.8e4043cf4e118658c12f.js:1:5837
Registering new JupyterLite ServiceWorker https://jupyterlite.github.io/xeus-python-demo/service-worker-b2fb40a.js service-manager.ts:50:16
Default kernel not found, using 'xeus-python' validate.ts:73:12
JupyterLite ServiceWorker was sucessfully registered service-manager.ts:52:16
Kernel filesystem and JupyterLite contents will be synced index.ts:235:16
SingleFile is hooking the IntersectionObserver API to detect and load deferred images. single-file-hooks-frames.js:1:531
Uncaught (in promise) TypeError: s is undefined
    d index.js:61
2 index.js:61:12
xeus-python contents will be synced with Jupyter Contents 20.6704bc71563170623fd0.js:1:2688
Starting WebSocket: wss://jupyterlite.github.io/xeus-python-demo/api/kernels/ed718396-d9c7-45c8-bd13-607e9106b8cd default.ts:1251:12
Default kernel not found, using 'xeus-python' validate.ts:73:12
Settings failed to load for (@jupyterlab/csvviewer-extension:csv) 
Array [ {…} ]
settingsplugin.ts:42:18
This may happen if {autoStart: false} in (@jupyterlab/csvviewer-extension:csv) or if it is one of the deferredExtensions in page config. settingsplugin.ts:44:20
Settings failed to load for (@jupyterlab/csvviewer-extension:tsv) 
Array [ {…} ]
settingsplugin.ts:42:18
This may happen if {autoStart: false} in (@jupyterlab/csvviewer-extension:tsv) or if it is one of the deferredExtensions in page config. settingsplugin.ts:44:20
Settings failed to load for (@jupyterlab/filebrowser-extension:widget) 
Array [ {…} ]
settingsplugin.ts:42:18
This may happen if {autoStart: false} in (@jupyterlab/filebrowser-extension:widget) or if it is one of the deferredExtensions in page config. settingsplugin.ts:44:20
Settings failed to load for (@jupyterlab/fileeditor-extension:plugin) 
Array [ {…} ]
settingsplugin.ts:42:18
This may happen if {autoStart: false} in (@jupyterlab/fileeditor-extension:plugin) or if it is one of the deferredExtensions in page config. settingsplugin.ts:44:20
Settings failed to load for (@jupyterlab/htmlviewer-extension:plugin) 
Array [ {…} ]
settingsplugin.ts:42:18
This may happen if {autoStart: false} in (@jupyterlab/htmlviewer-extension:plugin) or if it is one of the deferredExtensions in page config. settingsplugin.ts:44:20
Error: Dynamic module import is disabled or not supported in this context python_data.js:3:1
Failed to fetch ipywidgets through the "jupyter.widget.control" comm channel, fallback to fetching individual model state. Reason: Control comm did not respond in time 150.b0e841b75317744a7595.js:1:5783
Propriété « -moz-outline-radius » inconnue.  Déclaration abandonnée. notebooks:283:23
Propriété « -moz-osx-font-smoothing » inconnue.  Déclaration abandonnée. notebooks:638:29
Propriété « -moz-osx-font-smoothing » inconnue.  Déclaration abandonnée. notebooks:1387:31
Erreur d’analyse de la valeur pour « -webkit-transition-duration ».  Déclaration abandonnée. notebooks:1529:31
Erreur d’analyse de la valeur pour « transition-duration ».  Déclaration abandonnée. notebooks:1530:31
Erreur d’analyse de la valeur pour « -webkit-transition-delay ».  Déclaration abandonnée. notebooks:1587:30
Erreur d’analyse de la valeur pour « transition-delay ».  Déclaration abandonnée. notebooks:1588:30
Erreur d’analyse de la valeur pour « -webkit-transition-delay ».  Déclaration abandonnée. notebooks:1605:30
Erreur d’analyse de la valeur pour « transition-delay ».  Déclaration abandonnée. notebooks:1606:30
Erreur d’analyse de la valeur pour « -webkit-transition-delay ».  Déclaration abandonnée. notebooks:1863:32
Erreur d’analyse de la valeur pour « transition-delay ».  Déclaration abandonnée. notebooks:1864:32
Erreur d’analyse de la valeur pour « -webkit-transition-delay ».  Déclaration abandonnée. notebooks:1879:32
Erreur d’analyse de la valeur pour « transition-delay ».  Déclaration abandonnée. notebooks:1880:32
Erreur d’analyse de la valeur pour « -webkit-transition-delay ».  Déclaration abandonnée. notebooks:1900:32
Erreur d’analyse de la valeur pour « transition-delay ».  Déclaration abandonnée. notebooks:1901:32
Erreur d’analyse de la valeur pour « -webkit-transition-delay ».  Déclaration abandonnée. notebooks:1916:32
Erreur d’analyse de la valeur pour « transition-delay ».  Déclaration abandonnée. notebooks:1917:32
Erreur d’analyse de la valeur pour « -webkit-transition-delay ».  Déclaration abandonnée. notebooks:1937:32
Erreur d’analyse de la valeur pour « transition-delay ».  Déclaration abandonnée. notebooks:1938:32
Erreur d’analyse de la valeur pour « -webkit-transition-delay ».  Déclaration abandonnée. notebooks:1953:32
Erreur d’analyse de la valeur pour « transition-delay ».  Déclaration abandonnée. notebooks:1954:32
Erreur d’analyse de la valeur pour « -webkit-transition-delay ».  Déclaration abandonnée. notebooks:1974:32
Erreur d’analyse de la valeur pour « transition-delay ».  Déclaration abandonnée. notebooks:1975:32
Erreur d’analyse de la valeur pour « -webkit-transition-delay ».  Déclaration abandonnée. notebooks:1990:32
Erreur d’analyse de la valeur pour « transition-delay ».  Déclaration abandonnée. notebooks:1991:32
Erreur d’analyse de la valeur pour « -webkit-transition-delay ».  Déclaration abandonnée. notebooks:2016:32
Erreur d’analyse de la valeur pour « transition-delay ».  Déclaration abandonnée. notebooks:2017:32
Erreur d’analyse de la valeur pour « -webkit-transition-delay ».  Déclaration abandonnée. notebooks:2034:32
Erreur d’analyse de la valeur pour « transition-delay ».  Déclaration abandonnée. notebooks:2035:32
Erreur d’analyse de la valeur pour « -webkit-transition-delay ».  Déclaration abandonnée. notebooks:2060:32
Erreur d’analyse de la valeur pour « transition-delay ».  Déclaration abandonnée. notebooks:2061:32
Erreur d’analyse de la valeur pour « -webkit-transition-delay ».  Déclaration abandonnée. notebooks:2078:32
Erreur d’analyse de la valeur pour « transition-delay ».  Déclaration abandonnée. notebooks:2079:32
Pseudo-classe ou pseudo-élément « -ms-input-placeholder » inconnu.  Jeu de règles ignoré suite à un mauvais sélecteur. notebooks:2291:28
Pseudo-classe ou pseudo-élément « -ms-input-placeholder » inconnu.  Jeu de règles ignoré suite à un mauvais sélecteur. notebooks:2294:28
Pseudo-classe ou pseudo-élément « -ms-clear » inconnu.  Jeu de règles ignoré suite à un mauvais sélecteur. notebooks:2302:28
Propriété « -moz-outline-radius » inconnue.  Déclaration abandonnée. notebooks:2586:25
Propriété « -moz-outline-radius » inconnue.  Déclaration abandonnée. notebooks:2652:25
Jeu de règles ignoré suite à un mauvais sélecteur. notebooks:2807:72
Jeu de règles ignoré suite à un mauvais sélecteur. notebooks:2824:84
Pseudo-classe ou pseudo-élément « -ms-input-placeholder » inconnu.  Jeu de règles ignoré suite à un mauvais sélecteur. notebooks:2880:26
Pseudo-classe ou pseudo-élément « -ms-input-placeholder » inconnu.  Jeu de règles ignoré suite à un mauvais sélecteur. notebooks:2883:26
Jeu de règles ignoré suite à un mauvais sélecteur. notebooks:2929:35
Jeu de règles ignoré suite à un mauvais sélecteur. notebooks:2934:35
Jeu de règles ignoré suite à un mauvais sélecteur. notebooks:2939:35
Jeu de règles ignoré suite à un mauvais sélecteur. notebooks:2947:37
Pseudo-classe ou pseudo-élément « -ms-input-placeholder » inconnu.  Jeu de règles ignoré suite à un mauvais sélecteur. notebooks:2982:38
Pseudo-classe ou pseudo-élément « -ms-input-placeholder » inconnu.  Jeu de règles ignoré suite à un mauvais sélecteur. notebooks:2984:38
Jeu de règles ignoré suite à un mauvais sélecteur. notebooks:3006:47
Jeu de règles ignoré suite à un mauvais sélecteur. notebooks:3008:47
Jeu de règles ignoré suite à un mauvais sélecteur. notebooks:3012:47
Jeu de règles ignoré suite à un mauvais sélecteur. notebooks:3017:47
Jeu de règles ignoré suite à un mauvais sélecteur. notebooks:3023:49
Jeu de règles ignoré suite à un mauvais sélecteur. notebooks:3025:46
Propriété « -moz-osx-font-smoothing » inconnue.  Déclaration abandonnée. notebooks:3157:31
Pseudo-classe ou pseudo-élément « -ms-input-placeholder » inconnu.  Jeu de règles ignoré suite à un mauvais sélecteur. notebooks:3334:14
Pseudo-classe ou pseudo-élément « -ms-input-placeholder » inconnu.  Jeu de règles ignoré suite à un mauvais sélecteur. notebooks:3337:14
Pseudo-classe ou pseudo-élément « -ms-input-placeholder » inconnu.  Jeu de règles ignoré suite à un mauvais sélecteur. notebooks:3389:26
Pseudo-classe ou pseudo-élément « -ms-input-placeholder » inconnu.  Jeu de règles ignoré suite à un mauvais sélecteur. notebooks:3391:26
Pseudo-classe ou pseudo-élément « -ms-clear » inconnu.  Jeu de règles ignoré suite à un mauvais sélecteur. notebooks:3502:14
Pseudo-classe ou pseudo-élément « -ms-input-placeholder » inconnu.  Jeu de règles ignoré suite à un mauvais sélecteur. notebooks:3521:34
Pseudo-classe ou pseudo-élément « -ms-input-placeholder » inconnu.  Jeu de règles ignoré suite à un mauvais sélecteur. notebooks:3523:34
Pseudo-classe ou pseudo-élément « -ms-expand » inconnu.  Jeu de règles ignoré suite à un mauvais sélecteur. notebooks:4027:27
Propriété « -moz-osx-font-smoothing » inconnue.  Déclaration abandonnée. notebooks:4070:27
Propriété « -moz-osx-font-smoothing » inconnue.  Déclaration abandonnée. notebooks:4281:27
Propriété « -moz-osx-font-smoothing » inconnue.  Déclaration abandonnée. notebooks:4291:27
Propriété « -moz-osx-font-smoothing » inconnue.  Déclaration abandonnée. notebooks:4302:29
Propriété « -moz-osx-font-smoothing » inconnue.  Déclaration abandonnée. notebooks:5929:29
Propriété « -moz-osx-font-smoothing » inconnue.  Déclaration abandonnée. notebooks:5963:31
Erreur d’analyse de la valeur pour « -webkit-transition-delay ».  Déclaration abandonnée. notebooks:6258:30
Erreur d’analyse de la valeur pour « transition-delay ».  Déclaration abandonnée. notebooks:6259:30
Erreur d’analyse de la valeur pour « -webkit-transition-delay ».  Déclaration abandonnée. notebooks:6270:30
Erreur d’analyse de la valeur pour « transition-delay ».  Déclaration abandonnée. notebooks:6271:30
Erreur d’analyse de la valeur pour « -webkit-transition-delay ».  Déclaration abandonnée. notebooks:6354:28
Erreur d’analyse de la valeur pour « transition-delay ».  Déclaration abandonnée. notebooks:6355:28
Erreur d’analyse de la valeur pour « -webkit-transition-delay ».  Déclaration abandonnée. notebooks:6374:28
Erreur d’analyse de la valeur pour « transition-delay ».  Déclaration abandonnée. notebooks:6375:28
Erreur d’analyse de la valeur pour « -webkit-transition-delay ».  Déclaration abandonnée. notebooks:6394:28
Erreur d’analyse de la valeur pour « transition-delay ».  Déclaration abandonnée. notebooks:6395:28
Erreur d’analyse de la valeur pour « -webkit-transition-delay ».  Déclaration abandonnée. notebooks:6414:28
Erreur d’analyse de la valeur pour « transition-delay ».  Déclaration abandonnée. notebooks:6415:28
Erreur d’analyse de la valeur pour « -webkit-transition-delay ».  Déclaration abandonnée. notebooks:6496:28
Erreur d’analyse de la valeur pour « transition-delay ».  Déclaration abandonnée. notebooks:6497:28
Erreur d’analyse de la valeur pour « -webkit-transition-delay ».  Déclaration abandonnée. notebooks:6516:28
Erreur d’analyse de la valeur pour « transition-delay ».  Déclaration abandonnée. notebooks:6517:28
Erreur d’analyse de la valeur pour « -webkit-transition-delay ».  Déclaration abandonnée. notebooks:6536:28
Erreur d’analyse de la valeur pour « transition-delay ».  Déclaration abandonnée. notebooks:6537:28
Erreur d’analyse de la valeur pour « -webkit-transition-delay ».  Déclaration abandonnée. notebooks:6556:28
Erreur d’analyse de la valeur pour « transition-delay ».  Déclaration abandonnée. notebooks:6557:28
Erreur d’analyse de la valeur pour « -webkit-transition-delay ».  Déclaration abandonnée. notebooks:6674:30
Erreur d’analyse de la valeur pour « transition-delay ».  Déclaration abandonnée. notebooks:6675:30
Erreur d’analyse de la valeur pour « -webkit-transition-delay ».  Déclaration abandonnée. notebooks:6690:30
Erreur d’analyse de la valeur pour « transition-delay ».  Déclaration abandonnée. notebooks:6691:30
Erreur d’analyse de la valeur pour « -webkit-transition-delay ».  Déclaration abandonnée. notebooks:6721:34
Erreur d’analyse de la valeur pour « transition-delay ».  Déclaration abandonnée. notebooks:6722:34
Erreur d’analyse de la valeur pour « -webkit-transition-delay ».  Déclaration abandonnée. notebooks:6737:34
Erreur d’analyse de la valeur pour « transition-delay ».  Déclaration abandonnée. notebooks:6738:34
Erreur d’analyse de la valeur pour « -webkit-transition-delay ».  Déclaration abandonnée. notebooks:6795:30
Erreur d’analyse de la valeur pour « transition-delay ».  Déclaration abandonnée. notebooks:6796:30
Erreur d’analyse de la valeur pour « -webkit-transition-delay ».  Déclaration abandonnée. notebooks:6807:30
Erreur d’analyse de la valeur pour « transition-delay ».  Déclaration abandonnée. notebooks:6808:30
Propriété « -moz-outline-radius » inconnue.  Déclaration abandonnée. notebooks:7284:25
Erreur d’analyse de la valeur pour « -webkit-transform ».  Déclaration abandonnée. notebooks:7299:34
Erreur d’analyse de la valeur pour « transform ».  Déclaration abandonnée. notebooks:7300:34
Propriété « -moz-outline-radius » inconnue.  Déclaration abandonnée. notebooks:7388:25
Propriété « -moz-osx-font-smoothing » inconnue.  Déclaration abandonnée. notebooks:7596:29
Propriété « -moz-outline-radius » inconnue.  Déclaration abandonnée. notebooks:7687:27
Pseudo-classe ou pseudo-élément « -ms-input-placeholder » inconnu.  Jeu de règles ignoré suite à un mauvais sélecteur. notebooks:7751:47
Pseudo-classe ou pseudo-élément « -ms-input-placeholder » inconnu.  Jeu de règles ignoré suite à un mauvais sélecteur. notebooks:7753:47
Pseudo-classe ou pseudo-élément « -ms-input-placeholder » inconnu.  Jeu de règles ignoré suite à un mauvais sélecteur. notebooks:7786:20
Pseudo-classe ou pseudo-élément « -ms-input-placeholder » inconnu.  Jeu de règles ignoré suite à un mauvais sélecteur. notebooks:7789:20
Erreur d’analyse de la valeur pour « -webkit-transition-delay ».  Déclaration abandonnée. notebooks:7819:30
Erreur d’analyse de la valeur pour « transition-delay ».  Déclaration abandonnée. notebooks:7820:30
Erreur d’analyse de la valeur pour « -webkit-transition-delay ».  Déclaration abandonnée. notebooks:7835:30
Erreur d’analyse de la valeur pour « transition-delay ».  Déclaration abandonnée. notebooks:7836:30
Erreur d’analyse de la valeur pour « -webkit-transition-delay ».  Déclaration abandonnée. notebooks:7853:30
Erreur d’analyse de la valeur pour « transition-delay ».  Déclaration abandonnée. notebooks:7854:30
Erreur d’analyse de la valeur pour « -webkit-transition-delay ».  Déclaration abandonnée. notebooks:8087:30
Erreur d’analyse de la valeur pour « transition-delay ».  Déclaration abandonnée. notebooks:8088:30
Erreur d’analyse de la valeur pour « -webkit-transition-delay ».  Déclaration abandonnée. notebooks:8103:30
Erreur d’analyse de la valeur pour « transition-delay ».  Déclaration abandonnée. notebooks:8104:30
Erreur d’analyse de la valeur pour « -webkit-transition-delay ».  Déclaration abandonnée. notebooks:21:30
Erreur d’analyse de la valeur pour « transition-delay ».  Déclaration abandonnée. notebooks:22:30
Erreur d’analyse de la valeur pour « -webkit-transition-delay ».  Déclaration abandonnée. notebooks:39:30
Erreur d’analyse de la valeur pour « transition-delay ».  Déclaration abandonnée. notebooks:40:30
Propriété « -moz-outline-radius » inconnue.  Déclaration abandonnée. notebooks:51:23
Propriété « -moz-osx-font-smoothing » inconnue.  Déclaration abandonnée. notebooks:5:54
Erreur d’analyse de la valeur pour « overflow ».  Déclaration abandonnée. notebooks:78:13
Pseudo-classe ou pseudo-élément « -ms-input-placeholder » inconnu.  Jeu de règles ignoré suite à un mauvais sélecteur. notebooks:121:26
Propriété « -moz-outline-radius » inconnue.  Déclaration abandonnée. notebooks:56:23
Propriété « -moz-outline-radius » inconnue.  Déclaration abandonnée. notebooks:67:23
Jeu de règles ignoré suite à un mauvais sélecteur. notebooks:48:61
Jeu de règles ignoré suite à un mauvais sélecteur. notebooks:55:61
Jeu de règles ignoré suite à un mauvais sélecteur. notebooks:84:51
Jeu de règles ignoré suite à un mauvais sélecteur. notebooks:90:51
Jeu de règles ignoré suite à un mauvais sélecteur. notebooks:108:45
Jeu de règles ignoré suite à un mauvais sélecteur. notebooks:113:45
Propriété « -moz-border-radius » inconnue.  Déclaration abandonnée. notebooks:244:22
Erreur d’analyse de la valeur pour « content ».  Déclaration abandonnée. notebooks:1:174
Jeu de règles ignoré suite à un mauvais sélecteur. notebooks:1:1318
Erreur d’analyse de la valeur pour « display ».  Déclaration abandonnée. notebooks:1:2750
Propriété « -moz-osx-font-smoothing » inconnue.  Déclaration abandonnée. notebooks:11:27
Propriété « -moz-box-shadow » inconnue.  Déclaration abandonnée. notebooks:504:19
Default kernel not found, using 'xeus-python' 13 validate.ts:73:12
nthiery commented 1 year ago

Additional data:

martinRenou commented 1 year ago

Thanks for your issue!

It seems that the issue is that Firefox does not support dynamic imports in web workers and fails with Error: Dynamic module import is disabled or not supported in this context

See https://bugzilla.mozilla.org/show_bug.cgi?id=1540913 for the bug report

I think a quick fix would be to revert part of https://github.com/jupyterlite/xeus-python-kernel/pull/108 (the part that makes use of split_pack_environment instead of pack_environment). In the long term we should either use an other approach than dynamic import calls or wait for a Firefox bug fix.

cc. @DerThorsten

martinRenou commented 1 year ago

I think a quick fix would be to revert part of https://github.com/jupyterlite/xeus-python-kernel/pull/108 (the part that makes use of split_pack_environment instead of pack_environment)

I'm pushing a PR for this

nthiery commented 1 year ago

Thank you for the quick analysis! Happy to beta-test the PR as soon as available.

martinRenou commented 1 year ago

This will be fixed by https://github.com/emscripten-forge/empack/pull/59

martinRenou commented 1 year ago

Next empack release will fix it (probably coming today). Thanks again for the report, we need stronger testing :S.

jtpio commented 1 year ago

Maybe a small Galata / Playwright check that opens a notebook with the jupyterlite-xeus-python kernel in both chromium and firefox would be enough to start with?