From 1d30b1102c8911078ffd47fb6685b67c8b877906 Mon Sep 17 00:00:00 2001 From: FreekPols Date: Sat, 29 Aug 2026 15:49:39 +0200 Subject: [PATCH] pixi description --- .../figures/jupyterlab.png | Bin 0 -> 79047 bytes book/installation-and-setup/pixi.md | 50 +++++++++--- pixi.lock | 72 ++++++++++++++++++ pixi.toml | 2 + 4 files changed, 113 insertions(+), 11 deletions(-) create mode 100644 book/installation-and-setup/figures/jupyterlab.png diff --git a/book/installation-and-setup/figures/jupyterlab.png b/book/installation-and-setup/figures/jupyterlab.png new file mode 100644 index 0000000000000000000000000000000000000000..e745d2cbc82a37d2ba4372e53f322d947038663c GIT binary patch literal 79047 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 literal 0 HcmV?d00001 diff --git a/book/installation-and-setup/pixi.md b/book/installation-and-setup/pixi.md index 17043ce..2c9e634 100644 --- a/book/installation-and-setup/pixi.md +++ b/book/installation-and-setup/pixi.md @@ -1,21 +1,49 @@ -# Installing and running with Pixi +# Installing and running Teachbooks with Pixi -- Install pixi +> Install Pixi once, and you don't have to worry about installing the correct Python version and TeachBooks dependencies yourself. -In the root file of the TB: +Pixi is a package management tool that allows you to install Python, TeachBooks, and other dependencies using a single `pixi.toml` file. We created this file for you, so you only need to install [pixi from here](https://pixi.prefix.dev/latest/installation/). Pixi is available for Windows, macOS, and Linux. -- run `pixi install` +We present Pixi here as an alternative installation and workflow to the approach presented in the rest of this documentation. When using Pixi, you do not need to separately install Python, TeachBooks, JupyterLab, or manage a virtual environment. Simply start making your book using the [ten steps](https://teachbooks.tudelft.nl/jupyter-book-manual/draft/external/template/README.html#your-first-teachbook-using-the-github-template) and install the project environment as described below. -This will install teachbooks and the most common dependecies. +> If you already have a TeachBooks project, download this [pixi.toml file](../../pixi.toml), place it in the root folder of your project, and follow the steps below. -three tasks: + + +Using the terminal, navigate to the root folder of your project and run `pixi install`. This will install all necessary software and packages - these are installed in the project folder in `.pixi/`. + +In the pixi.toml file we have created three tasks: - `pixi run editor` this will start jupyterlab as the editor for both markdown and jupyternotebooks -- `pixi run serve` starts a server -- `pixi run teachbooks` builds the book (equivalent to `teachbooks build book` as described here) - - +- `pixi run server` starts a server +- `pixi run teachbooks` builds the book (equivalent to `teachbooks build book` as described [here](https://teachbooks.tudelft.nl/jupyter-book-manual/draft/installation-and-setup/jupyter-book-setup.html#build-a-book)) +## Add dependencies +In the pixi.toml file, we included some of the most used depencies. If you want to add packages, use `pixi add ` or if it is only available through pypi, use `pixi add --pypi `. Pixi adds the dependency to your project and updates the environment. ## Editing with Jupyter lab -Something about Jupyter lab \ No newline at end of file +As an alternative to VSC, JupyterLab can be used to edit of your Jupyter Notebook and Markdown files. Start JupyterLab by running `pixi run editor` + +```{figure} figures/jupyterlab.png +--- +width: 50% +name: fig_juplab_editor +--- +Running `pixi run editor` opens jupyterlab as editor. +``` + +You can preview the content by rightclicking the markdown document and open with markdownpreviewer. Once finished with editing, go back to the terminal and hit `ctrl + c` to stop the Jupyter server. + +## Cleaning up an unused project + +The Pixi environment can take up considerable disk space. If you don't plan to work on your TeachBook for a while, you can remove the installed environment with: + +`pixi clean` + +This removes the software and packages installed in the project's .pixi/ folder. Your pixi.toml and pixi.lock files are kept, so you can recreate the environment later by running: + +`pixi install` + +```{note} +If you have multiple Teachbooks, it seems as if they all take a lot of memory. This isn't really the case as pixi makes smart use of links between them. +``` \ No newline at end of file diff --git a/pixi.lock b/pixi.lock index 38940d5..25afbbe 100644 --- a/pixi.lock +++ b/pixi.lock @@ -229,6 +229,7 @@ environments: - pypi: https://files.pythonhosted.org/packages/37/86/d45756beaeb4b9b06125599b429451f8640b5db6f019d606f33c85743fd4/jupyter_book-1.0.4.post1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/64/6b/67b87da9d36bff9df7d0efbd1a325fa372a43be7158effaf43ed7b22341d/jupyter_cache-1.0.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/f6/54/af203c61a0550c232ed5e859d2c98f3fe80d1248b6ea1c4d4d5621fa08c9/jupyterbook_patches-1.15.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2b/08/ad5d4d383807ca379c02b8fa94f744c30ea0929a9b3953a19b00bea52b8b/jupyterlab_myst-2.7.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b5/40/23569737873cc9637fd488606347e9dd92b9fa37ba4fcda1f98ee5219a97/latexcodec-3.0.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/eb/3d/e34b19cd144071c583317268c4feb2c59c03ac57eef69753410c7abb11c0/linkify_it_py-2.1.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl @@ -239,6 +240,8 @@ environments: - pypi: https://files.pythonhosted.org/packages/44/f6/775eb92e865b28cdb4ad1f2bed7a5446197516f76b58a950faa3be3fd08d/pybtex-0.26.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/11/b1/ce1f4596211efb5410e178a803f08e59b20bedb66837dcf41e21c54f9ec1/pybtex_docutils-1.0.3-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e2/0d/8ba33fa83a7dcde13eb3c1c2a0c1cc29950a048bfed6d9b0d8b6bd710b4c/pydata_sphinx_theme-0.16.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/3e/b9/3766cc361d93edb2ce81e2e1f87dd98f314d7d513877a342d31b30741680/pypng-0.20220715.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/37/61/f07226075c347897937d4086ef8e55f0a62ae535e28069884ac68d979316/PyQRCode-1.2.1.tar.gz - pypi: https://files.pythonhosted.org/packages/b8/0c/51f6841f1d84f404f92463fc2b1ba0da357ca1e3db6b7fbda26956c3b82a/ruamel_yaml-0.19.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/95/9c/c510029fc6ef33a6275cd2c5d3cecd6613dfd6aa401d57c54f1c18852ccf/setuptools-84.0.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/4c/07/2ebca9b11fb9be7340a818d8d6f63feaebb146be2c4afbd6061701d6df6e/snowballstemmer-3.1.1-py3-none-any.whl @@ -284,6 +287,7 @@ environments: - pypi: git+https://github.com/TeachBooks/TeachBooks-Favourites.git#ad0f301f83effb9322a5460f444d88878b30a75b - pypi: https://files.pythonhosted.org/packages/7f/24/77b78c112c60e2ddb16351e77f9a108628a6c3c18a618815112d79d374a2/teachbooks_fetch-0.0.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/01/d0/99a7a3e3cce5d83566567c484cce9f2c5874c22da4cf2d420647233dbc81/teachbooks_questions-0.2.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/3e/70/86d1bd35bcf06cdb0aaf59cdec3932cec21750dd276b69856221e25ea6d5/teachbooks_sphinx_grasple-1.3.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/05/77/8c5a7237bc99221408f12b629210b8f2176bcccfca916c09edfa8eb048e3/teachbooks_sphinx_tippy-1.0.15-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/24/74/f356db22f82eba6fd559128ae31222564f1e9e1e8b46a6ff93262621a9a2/teachbooks_zoomies-0.2.4-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/61/73/d21edf5b204d1467e06500080a50f79d49ef2b997c79123a536d4a17d97c/uc_micro_py-2.0.0-py3-none-any.whl @@ -1487,6 +1491,18 @@ packages: - pkg:pypi/jupyterlab?source=compressed-mapping size: 13178193 timestamp: 1786398793317 +- pypi: https://files.pythonhosted.org/packages/2b/08/ad5d4d383807ca379c02b8fa94f744c30ea0929a9b3953a19b00bea52b8b/jupyterlab_myst-2.7.0-py3-none-any.whl + name: jupyterlab-myst + version: 2.7.0 + sha256: 7c66aae898a5b0db84b1d4b83fa68d5d37f846b4f891621de78abb960678e70e + requires_dist: + - jupyter-server>=2.0.1,<3 ; sys_platform != 'emscripten' + - coverage ; extra == 'test' + - pytest ; extra == 'test' + - pytest-asyncio ; extra == 'test' + - pytest-cov ; extra == 'test' + - pytest-jupyter[server]>=0.6.0 ; extra == 'test' + requires_python: '>=3.8' - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.3.0-pyhd8ed1ab_2.conda sha256: dc24b900742fdaf1e077d9a3458fd865711de80bca95fe3c6d46610c532c6ef0 md5: fd312693df06da3578383232528c468d @@ -2781,6 +2797,16 @@ packages: - pkg:pypi/pyparsing?source=hash-mapping size: 110893 timestamp: 1769003998136 +- pypi: https://files.pythonhosted.org/packages/3e/b9/3766cc361d93edb2ce81e2e1f87dd98f314d7d513877a342d31b30741680/pypng-0.20220715.0-py3-none-any.whl + name: pypng + version: 0.20220715.0 + sha256: 4a43e969b8f5aaafb2a415536c1a8ec7e341cd6a3f957fd5b5f32a4cfeed902c +- pypi: https://files.pythonhosted.org/packages/37/61/f07226075c347897937d4086ef8e55f0a62ae535e28069884ac68d979316/PyQRCode-1.2.1.tar.gz + name: pyqrcode + version: 1.2.1 + sha256: fdbf7634733e56b72e27f9bce46e4550b75a3a2c420414035cae9d9d26b234d5 + requires_dist: + - pypng>=0.0.13 ; extra == 'png' - conda: https://conda.anaconda.org/conda-forge/win-64/pyside6-6.11.2-py314h447aaf0_0.conda sha256: bf1553eebc31e8ba04689639e8ce235c3df5317414f0c4a11417f238297f1b17 md5: 7c3ccff96dbc9f8e3c40142c7594ec34 @@ -3892,6 +3918,52 @@ packages: requires_dist: - sphinx requires_python: '>=3.10' +- pypi: https://files.pythonhosted.org/packages/3e/70/86d1bd35bcf06cdb0aaf59cdec3932cec21750dd276b69856221e25ea6d5/teachbooks_sphinx_grasple-1.3.0-py3-none-any.whl + name: teachbooks-sphinx-grasple + version: 1.3.0 + sha256: 414e20e9036a47b24d3d09b34fa16cf3f7b2758f9e24fb47da0496b3d70c1878 + requires_dist: + - pypng + - pyqrcode + - sphinx-book-theme + - sphinx>=4 + - beautifulsoup4 ; extra == 'all' + - black ; extra == 'all' + - coverage ; extra == 'all' + - docutils>=0.15,<0.19 ; extra == 'all' + - flake8>=3.7.0,<3.8.0 ; extra == 'all' + - matplotlib ; extra == 'all' + - myst-nb~=0.17.1 ; extra == 'all' + - pre-commit ; extra == 'all' + - pypng ; extra == 'all' + - pyqrcode ; extra == 'all' + - pytest-cov ; extra == 'all' + - pytest-regressions ; extra == 'all' + - pytest>=3.6,<4 ; extra == 'all' + - sphinx-book-theme ; extra == 'all' + - sphinx-exercise ; extra == 'all' + - sphinx>=4,<6 ; extra == 'all' + - texsoup ; extra == 'all' + - black ; extra == 'code-style' + - flake8>=3.7.0,<3.8.0 ; extra == 'code-style' + - pre-commit ; extra == 'code-style' + - myst-nb~=0.17.1 ; extra == 'rtd' + - sphinx-book-theme ; extra == 'rtd' + - sphinx-exercise ; extra == 'rtd' + - sphinx>=4,<6 ; extra == 'rtd' + - beautifulsoup4 ; extra == 'testing' + - coverage ; extra == 'testing' + - docutils>=0.15,<0.19 ; extra == 'testing' + - matplotlib ; extra == 'testing' + - myst-nb~=0.17.1 ; extra == 'testing' + - pypng ; extra == 'testing' + - pyqrcode ; extra == 'testing' + - pytest-cov ; extra == 'testing' + - pytest-regressions ; extra == 'testing' + - pytest>=3.6,<4 ; extra == 'testing' + - sphinx>=4,<6 ; extra == 'testing' + - texsoup ; extra == 'testing' + requires_python: '>=3.8' - pypi: https://files.pythonhosted.org/packages/05/77/8c5a7237bc99221408f12b629210b8f2176bcccfca916c09edfa8eb048e3/teachbooks_sphinx_tippy-1.0.15-py3-none-any.whl name: teachbooks-sphinx-tippy version: 1.0.15 diff --git a/pixi.toml b/pixi.toml index bb52dcb..3b9a135 100644 --- a/pixi.toml +++ b/pixi.toml @@ -21,3 +21,5 @@ teachbooks = ">=0.2.5, <0.3" teachbooks-favourites = { git = "https://github.com/TeachBooks/TeachBooks-Favourites.git" } sphinx-inline-tabs = ">=2025.12.21.14, <2026" sphinx-apa-references = ">=1.0.1, <2" +jupyterlab-myst = ">=2.7.0, <3" +teachbooks-sphinx-grasple = ">=1.3.0, <2"