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 if packages are installed #57

Open yuvipanda opened 2 years ago

yuvipanda commented 2 years ago

Reproduce

git clone https://github.com/yuvipanda/requirements
cd requirements
jupyter lite build . --output-dir _output --contents . --config jupyterlite_config.json
cd _output
python3 -m http.server 9000

Go to localhost:9000, see jupyterlite. Try to start the xpython kernel, it never starts. If you type print("hello world") it never runs.

The relevant part of the repo is jupyterlite_config.json, which is:

{
    "XeusPythonEnv": {
        "packages": ["numpy", "matplotlib", "ipyleaflet", "flask"]
    }
}

Expected behavior

I can run python code, as well as install additional packages.

Context

Output of pip list:

Package                 Version            Editable project location
----------------------- ------------------ --------------------------------------
alembic                 1.8.0
anyio                   3.6.1
appnope                 0.1.3
argon2-cffi             21.3.0
argon2-cffi-bindings    21.2.0
asttokens               2.0.5
async-generator         1.10
attrs                   21.4.0
Babel                   2.10.3
backcall                0.2.0
beautifulsoup4          4.11.1
binderhub               0.2.0+979.g2d15492
black                   22.6.0
bleach                  5.0.1
cachetools              5.2.0
certifi                 2022.6.15
certipy                 0.1.3
cffi                    1.15.1
chardet                 5.0.0
charset-normalizer      2.1.0
click                   8.1.3
cloudpickle             2.1.0
commonmark              0.9.1
cryptography            37.0.2
debugpy                 1.6.0
decorator               5.1.1
defusedxml              0.7.1
docker                  5.0.3
docutils                0.18.1
doit                    0.36.0
empack                  0.7.1
entrypoints             0.4
escapism                1.0.1
executing               0.8.3
fastapi                 0.78.0
fastjsonschema          2.15.3
flake8                  4.0.1
google-auth             2.9.0
greenlet                1.1.2
h11                     0.13.0
httptools               0.4.0
idna                    3.3
importlib-metadata      4.12.0
ipykernel               6.15.0
ipython                 8.4.0
ipython-genutils        0.2.0
iso8601                 1.0.2
jedi                    0.18.1
Jinja2                  3.1.2
json5                   0.9.8
jsonschema              4.6.1
jupyter-client          7.3.4
jupyter-core            4.10.0
jupyter-repo2docker     2022.2.0
jupyter-server          1.18.0
jupyter-telemetry       0.1.0
jupyterhub              2.3.1
jupyterlab              3.4.3
jupyterlab-pygments     0.2.2
jupyterlab-server       2.14.0
jupyterlite             0.1.0b10
jupyterlite-xeus-python 0.5.1
keyring                 23.6.0
kubernetes              24.2.0
Mako                    1.2.1
MarkupSafe              2.1.1
matplotlib-inline       0.1.3
mccabe                  0.6.1
mistune                 0.8.4
mypy-extensions         0.4.3
nbclassic               0.3.7
nbclient                0.6.6
nbconvert               6.5.0
nbformat                5.4.0
nest-asyncio            1.5.5
notebook                6.4.12
notebook-shim           0.1.0
oauthlib                3.2.0
packaging               21.3
pamela                  1.0.0
pandocfilters           1.5.0
parso                   0.8.3
pathspec                0.9.0
pexpect                 4.8.0
pickleshare             0.7.5
pip                     22.0.4
pkginfo                 1.8.3
platformdirs            2.5.2
prometheus-client       0.14.1
prompt-toolkit          3.0.30
psutil                  5.9.1
ptyprocess              0.7.0
pure-eval               0.2.2
pyasn1                  0.4.8
pyasn1-modules          0.2.8
pycodestyle             2.8.0
pycparser               2.21
pydantic                1.9.1
pyflakes                2.4.0
Pygments                2.12.0
PyJWT                   2.4.0
pyOpenSSL               22.0.0
pyparsing               3.0.9
pyrsistent              0.18.1
python-dateutil         2.8.2
python-dotenv           0.20.0
python-json-logger      2.0.2
pytz                    2022.1
PyYAML                  6.0
pyzmq                   23.2.0
readme-renderer         35.0
repo2jupyterlite        0.1                /Users/yuvipanda/code/repo2jupyterlite
requests                2.28.1
requests-oauthlib       1.3.1
requests-toolbelt       0.9.1
rfc3986                 2.0.0
rich                    12.4.4
rsa                     4.8
ruamel.yaml             0.17.21
ruamel.yaml.clib        0.2.6
semver                  2.13.0
Send2Trash              1.8.0
setuptools              60.10.0
six                     1.16.0
sniffio                 1.2.0
soupsieve               2.3.2.post1
SQLAlchemy              1.4.39
stack-data              0.3.0
starlette               0.19.1
terminado               0.15.0
tinycss2                1.1.1
toml                    0.10.2
tomli                   2.0.1
tornado                 6.1
traitlets               5.3.0
twine                   4.0.1
typer                   0.4.1
typing_extensions       4.3.0
urllib3                 1.26.9
uvicorn                 0.18.2
uvloop                  0.16.0
versioneer              0.22
watchfiles              0.15.0
wcwidth                 0.2.5
webencodings            0.5.1
websocket-client        1.3.3
websockets              10.3
wheel                   0.37.1
zipp                    3.8.0

Am not using conda or anything.

Browser Output
Paste the output from your browser Javascript console here.
warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available. [xpython_wasm.js:9:206004](http://localhost:9000/_output/extensions/@jupyterlite/xeus-python-kernel/static/xpython_wasm.js) make_xkernel 1 [xpython_wasm.js:9:52899](http://localhost:9000/_output/extensions/@jupyterlite/xeus-python-kernel/static/xpython_wasm.js) make_xkernel 2
wolfv commented 2 years ago

OK, so we debugged a bit here at scipy. It seems that everything is fine in Linux! It also seems that the emsdk package is properly working only on linux? And it's needed for empack if I see that correctly.

Maybe we should test that on a couple more platforms :)

jtpio commented 2 years ago

Maybe we should test that on a couple more platforms :)

Yes a first good step would be to test more platforms on CI.