{"id":13633843,"url":"https://github.com/jupyter-xeus/xeus-python","last_synced_at":"2025-04-14T01:01:19.650Z","repository":{"id":37867462,"uuid":"152753394","full_name":"jupyter-xeus/xeus-python","owner":"jupyter-xeus","description":"Jupyter kernel for the Python programming language","archived":false,"fork":false,"pushed_at":"2025-01-13T09:35:18.000Z","size":6243,"stargazers_count":448,"open_issues_count":68,"forks_count":78,"subscribers_count":17,"default_branch":"main","last_synced_at":"2025-04-06T21:11:52.736Z","etag":null,"topics":["cplusplus","jupyter","python"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jupyter-xeus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-10-12T13:18:30.000Z","updated_at":"2025-04-06T14:44:34.000Z","dependencies_parsed_at":"2023-02-18T08:00:45.653Z","dependency_job_id":"265577e9-a4ef-42a0-9aa3-38f192c38058","html_url":"https://github.com/jupyter-xeus/xeus-python","commit_stats":{"total_commits":608,"total_committers":25,"mean_commits":24.32,"dds":0.600328947368421,"last_synced_commit":"933c5c83c2c21b7947c9f9764dbdf43e1fc90e73"},"previous_names":[],"tags_count":97,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jupyter-xeus%2Fxeus-python","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jupyter-xeus%2Fxeus-python/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jupyter-xeus%2Fxeus-python/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jupyter-xeus%2Fxeus-python/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jupyter-xeus","download_url":"https://codeload.github.com/jupyter-xeus/xeus-python/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248804790,"owners_count":21164132,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cplusplus","jupyter","python"],"created_at":"2024-08-01T23:00:52.501Z","updated_at":"2025-04-14T01:01:19.626Z","avatar_url":"https://github.com/jupyter-xeus.png","language":"C++","readme":"# ![xeus-python](docs/xeus-python.svg)\n\n[![GitHub Action CI](https://github.com/jupyter-xeus/xeus-python/actions/workflows/main.yml/badge.svg)](https://github.com/jupyter-xeus/xeus-python/actions/workflows/main.yml)\n[![Documentation Status](http://readthedocs.org/projects/xeus-python/badge/?version=latest)](https://xeus-python.readthedocs.io/en/latest/?badge=latest)\n[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/jupyter-xeus/xeus-python/stable?urlpath=/lab/tree/notebooks/xeus-python.ipynb)\n[![Join the Gitter Chat](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/QuantStack/Lobby?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n\n`xeus-python` is a Jupyter kernel for Python based on the native implementation of the Jupyter protocol [xeus](https://github.com/jupyter-xeus/xeus).\n\n## Installation\n\nxeus-python has been packaged for the mamba (or conda) package manager.\n\nTo ensure that the installation works, it is preferable to install `xeus-python` in a fresh environment. It is also needed to use a [miniforge](https://github.com/conda-forge/miniforge#mambaforge) or [miniconda](https://conda.io/miniconda.html) installation because with the full [anaconda](https://www.anaconda.com/) you may have a conflict with the `zeromq` library which is already installed in the anaconda distribution.\n\nThe safest usage is to create an environment named `xeus-python`\n\n```bash\nmamba create -n xeus-python\nsource activate xeus-python\n```\n\n### Installing from conda-forge\n\nThen you can install in this environment `xeus-python` and its dependencies\n\n```bash\nmamba install xeus-python notebook -c conda-forge\n```\n\n### Installing from PyPI\n\nDepending on the platform, PyPI wheels may be available for xeus-python.\n\n```bash\npip install xeus-python notebook\n```\n\nIf you encounter the following error message\n\n```bash\nCollecting xeus-python\n  Cache entry deserialization failed, entry ignored\n  Could not find a version that satisfies the requirement xeus-python (from versions: )\nNo matching distribution found for xeus-python\n```\n\nyou probably need to upgrade pip: `pip install --upgrade pip` before attempting to install\n`xeus-python` again.\n\nThe wheels uploaded on PyPI are **experimental**. In general we strongly recommend using a\npackage manager instead. We maintain the conda-forge package, and nothing prevents you from\ncreating a package your favorite Linux distribution or FreeBSD.\n\nThe ongoing effort to package xeus-python for pip takes place in the [xeus-python-wheel](https://github.com/jupyter-xeus/xeus-python-wheel) repository.\n\n### Installing from source\n\nOr you can install it from the sources, you will first need to install dependencies\n\n```bash\nmamba install cmake xeus xeus-zmq nlohmann_json pybind11 pybind11_json xeus-python-shell jupyterlab -c conda-forge\n```\n\nThen you can compile the sources (replace `$CONDA_PREFIX` with a custom installation prefix if need be)\n\n```bash\nmkdir build \u0026\u0026 cd build\ncmake .. -D CMAKE_PREFIX_PATH=$CONDA_PREFIX -D CMAKE_INSTALL_PREFIX=$CONDA_PREFIX -D CMAKE_INSTALL_LIBDIR=lib -D PYTHON_EXECUTABLE=`which python`\nmake \u0026\u0026 make install\n```\n\n## Trying it online\n\nTo try out xeus-python interactively in your web browser, just click on the binder\nlink:\n\n[![Binder](binder-logo.svg)](https://mybinder.org/v2/gh/jupyter-xeus/xeus-python/stable?urlpath=/lab/tree/notebooks/xeus-python.ipynb)\n\n## Usage\n\nLaunch the Jupyter notebook with `jupyter notebook` or Jupyter lab with `jupyter lab` and launch a new Python notebook by selecting the **xpython** kernel.\n\n**Raw mode**\n\nYou can run xeus-python in the \"raw\" mode by selecting the `XPython Raw` kernel. In this mode:\n\n- IPython is not used: IPython magics are not available\n- Jupyter console is not supported\n\nbut\n\n- xeus-python starts faster\n- Completion/Inspection/Code execution works faster\n- Interactive widgets are supported\n\nThis is useful when using xeus-python in [Voila](https://github.com/voila-dashboards/voila), where you should see a\n~15% performance improvement, reducing the load of your application.\n\n## xeus-python in JupyterLite!\n\nYou can install xeus-python in JupyterLite, see https://github.com/jupyterlite/xeus for more information.\n\n**Code execution and variable display**:\n\n![Basic code execution](docs/code_exec.gif)\n\n**Output streams**:\n\n![Streams](docs/streams.gif)\n\n**Input streams**:\n\n![Input](docs/input.gif)\n\n**Error handling**:\n\n![Erro handling](docs/error.gif)\n\n**Inspect**:\n\n![Inspect](docs/inspect.gif)\n\n**Code completion**:\n\n![Completion](docs/code_completion.gif)\n\n**Rich display**:\n\n![Rich display](docs/rich_disp.gif)\n\n**And of course widgets**:\n\n![Widgets](docs/widgets.gif)\n![Widgets binary](docs/binary.gif)\n\n## Documentation\n\nTo get started with using `xeus-python`, check out the full documentation\n\nhttp://xeus-python.readthedocs.io\n\n## What are the advantages of using xeus-python over ipykernel (IPython kernel)?\n\nCheck-out this blog post for the answer: https://blog.jupyter.org/a-new-python-kernel-for-jupyter-fcdf211e30a8.\nLong story short:\n\n- xeus-python is a lot lighter than ipykernel, which makes it a lot easier to implement new features on top of it.\n- xeus-python already works with the **Jupyter Lab debugger**: https://github.com/jupyterlab/jupyterlab/tree/main/packages/debugger\n- xeus-based kernels are more versatile in that one can overload e.g. the concurrency model. This is something that Kitware’s SlicerJupyter project takes advantage of to integrate with the Qt event loop of their Qt-based desktop application.\n\n## Dependencies\n\n``xeus-python`` depends on\n\n - [xeus-zmq](https://github.com/jupyter-xeus/xeus-zmq)\n - [pybind11](https://github.com/pybind/pybind11)\n - [pybind11_json](https://github.com/pybind/pybind11_json)\n - [nlohmann_json](https://github.com/nlohmann/json)\n - [xeus-python-shell](https://github.com/jupyter-xeus/xeus-python-shell)\n\n| `xeus-python`|   `xeus-zmq`     |`nlohmann_json` | `pybind11`     | `pybind11_json`   | `pygments`        | `debugpy` |`xeus-python-shell` |\n|--------------|------------------|----------------|----------------|-------------------|-------------------|-----------|--------------------|\n|  main        |  \u003e=3.1,\u003c4.0      |\u003e=3.11.3        | \u003e=2.6.1,\u003c3.0   | \u003e=0.2.8,\u003c0.3      | \u003e=2.3.1,\u003c3.0.0    | \u003e=1.1.0   | \u003e=0.6.3.0,\u003c0.7.0   |\n|  0.17.1      |  \u003e=3.1,\u003c4.0      |\u003e=3.11.3        | \u003e=2.6.1,\u003c3.0   | \u003e=0.2.8,\u003c0.3      | \u003e=2.3.1,\u003c3.0.0    | \u003e=1.1.0   | \u003e=0.6.3.0,\u003c0.7.0   |\n|  0.17.0      |  \u003e=3.0,\u003c4.0      |\u003e=3.11.3        | \u003e=2.6.1,\u003c3.0   | \u003e=0.2.8,\u003c0.3      | \u003e=2.3.1,\u003c3.0.0    | \u003e=1.1.0   | \u003e=0.6.3.0,\u003c0.7.0   |\n\nPrior vo version 0.17, ``xeus-python`` was also depending on [xtl](https://github.com/xtensor-stack/xtl) \u0026 [cppzmq](https://github.com/zeromq/cppzmq):\n\n| `xeus-python`|   `xeus-zmq`     |      `xtl`      | `cppzmq` | `nlohmann_json` | `pybind11`     | `pybind11_json`   | `pygments`        | `debugpy` |`xeus-python-shell` |\n|--------------|------------------|-----------------|----------|-----------------|----------------|-------------------|-------------------|-----------|---------------------|\n|  0.16.x      |  \u003e=1.0.0,\u003c2.0    |  \u003e=0.7.0,\u003c0.8   | ~4.4.1   | \u003e=3.6.1,\u003c3.10   | \u003e=2.6.1,\u003c3.0   | \u003e=0.2.8,\u003c0.3      | \u003e=2.3.1,\u003c3.0.0    | \u003e=1.1.0   | \u003e=0.5.0,\u003c0.7.0      |\n|  0.15.x      |  \u003e=1.0.0,\u003c2.0    |  \u003e=0.7.0,\u003c0.8   | ~4.4.1   | \u003e=3.6.1,\u003c3.10   | \u003e=2.6.1,\u003c3.0   | \u003e=0.2.8,\u003c0.3      | \u003e=2.3.1,\u003c3.0.0    | \u003e=1.1.0   | \u003e=0.5.0,\u003c0.7.0      |\n\nPrior to version 0.15, ``xeus-python`` was depending on ``xeus`` instead of ``xeus-zmq``:\n\n| `xeus-python`|   `xeus`         |      `xtl`      | `cppzmq` | `nlohmann_json` | `pybind11`     | `pybind11_json`   | `pygments`        | `debugpy` |`xeus-python-shell` |\n|--------------|------------------|-----------------|----------|-----------------|----------------|-------------------|-------------------|-----------|---------------------|\n|  0.14.3      |  \u003e=2.0.0,\u003c3.0    |  \u003e=0.7.0,\u003c0.8   | ~4.4.1   | \u003e=3.6.1,\u003c3.10   | \u003e=2.6.1,\u003c3.0   | \u003e=0.2.8,\u003c0.3      | \u003e=2.3.1,\u003c3.0.0    | \u003e=1.1.0   | \u003e=0.5.0,\u003c0.6.0      |\n|  0.14.2      |  \u003e=2.0.0,\u003c3.0    |  \u003e=0.7.0,\u003c0.8   | ~4.4.1   | \u003e=3.6.1,\u003c3.10   | \u003e=2.6.1,\u003c3.0   | \u003e=0.2.8,\u003c0.3      | \u003e=2.3.1,\u003c3.0.0    | \u003e=1.1.0   | \u003e=0.4.1,\u003c0.5.0      |\n|  0.14.1      |  \u003e=2.0.0,\u003c3.0    |  \u003e=0.7.0,\u003c0.8   | ~4.4.1   | \u003e=3.6.1,\u003c3.10   | \u003e=2.6.1,\u003c3.0   | \u003e=0.2.8,\u003c0.3      | \u003e=2.3.1,\u003c3.0.0    | \u003e=1.1.0   | \u003e=0.4.1,\u003c0.5.0      |\n|  0.14.0      |  \u003e=2.0.0,\u003c3.0    |  \u003e=0.7.0,\u003c0.8   | ~4.4.1   | \u003e=3.6.1,\u003c3.10   | \u003e=2.6.1,\u003c3.0   | \u003e=0.2.8,\u003c0.3      | \u003e=2.3.1,\u003c3.0.0    | \u003e=1.1.0   | \u003e=0.4.1,\u003c0.5.0      |\n|  0.13.x      |  \u003e=2.0.0,\u003c3.0    |  \u003e=0.7.0,\u003c0.8   | ~4.4.1   | \u003e=3.6.1,\u003c3.10   | \u003e=2.6.1,\u003c3.0   | \u003e=0.2.8,\u003c0.3      | \u003e=2.3.1,\u003c3.0.0    | \u003e=1.1.0   | \u003e=0.3.0,\u003c0.4.0      |\n\n## Contributing\n\nSee [CONTRIBUTING.md](./CONTRIBUTING.md) to know how to contribute and set up a development environment.\n\n## License\n\nWe use a shared copyright model that enables all contributors to maintain the\ncopyright on their contributions.\n\nThis software is licensed under the BSD-3-Clause license. See the [LICENSE](LICENSE) file for details.\n","funding_links":[],"categories":["C++","Jupyter Kernels"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjupyter-xeus%2Fxeus-python","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjupyter-xeus%2Fxeus-python","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjupyter-xeus%2Fxeus-python/lists"}