mirror of
https://github.com/jeertmans/manim-slides.git
synced 2025-05-23 21:46:49 +08:00

* test: re-add opencv-python * chore(dev): move to Rye instead of PDM * try fix * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * fix: build backend * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * fix: string quotes? * small fixes * upgrade typing * fix(ci): rye install on Windows * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * fix(ci): typos * fix * fix(ci): actually use right python version * fix(deps): manimgl * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * fix docs * another fix * cleanup * make sure to use trusted publisher * chore(docs): remove PDM --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
192 lines
6.1 KiB
Markdown
192 lines
6.1 KiB
Markdown
# Installation
|
|
|
|
While installing Manim Slides and its dependencies on your global Python is fine,
|
|
we recommend using a virtual environment
|
|
(e.g., [venv](https://docs.python.org/3/tutorial/venv.html)) for a local installation.
|
|
|
|
Therefore, the following documentation will install Manim Slides using
|
|
[pipx](https://pipx.pypa.io/). This tool is a drop-in replacement
|
|
for installing Python packages that ship with one or more executable.
|
|
|
|
The benefit of using pipx is that it will automatically create a new virtual
|
|
environment for every package you install.
|
|
|
|
:::{note}
|
|
Every time you read `pipx install`, you can use `pip install` instead,
|
|
if you are working in a virtual environment or else.
|
|
:::
|
|
|
|
## Dependencies
|
|
|
|
<!-- start deps -->
|
|
|
|
Manim Slides requires either Manim or ManimGL to be installed, along
|
|
with their dependencies.
|
|
Having both packages installed is fine too.
|
|
|
|
If none of those packages are installed,
|
|
please refer to their specific installation guidelines:
|
|
- [Manim](https://docs.manim.community/en/stable/installation.html)
|
|
- [ManimGL](https://3b1b.github.io/manim/getting_started/installation.html)
|
|
|
|
:::{warning}
|
|
If you install Manim from its git repository, as suggested by ManimGL,
|
|
make sure to first check out a supported version (e.g., `git checkout tags/v1.6.1`
|
|
for ManimGL), otherwise it might install an unsupported version of Manim!
|
|
See [#314](https://github.com/jeertmans/manim-slides/issues/314).
|
|
|
|
Also, note that ManimGL uses outdated dependencies, and may
|
|
not work out-of-the-box. One example is NumPy: ManimGL
|
|
does not specify any restriction on this package, but
|
|
only `numpy<1.25` will work, see
|
|
[#2053](https://github.com/3b1b/manim/issues/2053).
|
|
:::
|
|
|
|
<!-- end deps -->
|
|
|
|
## Pip Install
|
|
|
|
The recommended way to install the latest release
|
|
with all features is to use pipx:
|
|
|
|
```bash
|
|
pipx install -U "manim-slides[pyside6-full]"
|
|
```
|
|
|
|
:::{tip}
|
|
While not necessary, the `-U` indicates that we would
|
|
like to upgrade to the latest version available,
|
|
if Manim Slides is already installed.
|
|
:::
|
|
|
|
:::{note}
|
|
The quotes `"` are added because not all shell support unquoted
|
|
brackets (e.g., zsh) or commas (e.g., Windows).
|
|
:::
|
|
|
|
You can check that Manim Slides was correctly installed with:
|
|
|
|
```bash
|
|
manim-slides --version
|
|
```
|
|
|
|
## Custom install
|
|
|
|
If you want more control on what dependencies are installed,
|
|
you can always install the bare minimal dependencies with:
|
|
|
|
```bash
|
|
pipx install -U manim-slides
|
|
```
|
|
|
|
And install additional dependencies later.
|
|
|
|
Optionally, you can also install Manim or ManimGL using extras[^1]:
|
|
|
|
```bash
|
|
pipx install -U "manim-slides[manim]" # For Manim
|
|
# or
|
|
pipx install -U "manim-slides[manimgl]" # For ManimGL
|
|
```
|
|
|
|
For optional dependencies documentation, see
|
|
[next section](#optional-dependencies).
|
|
|
|
:::{warning}
|
|
If you are installing with pipx, this is mandatory to at least include
|
|
either `manim` or `manimgl`.
|
|
:::
|
|
|
|
[^1]: You still need to have Manim or ManimGL platform-specific dependencies
|
|
installed on your computer.
|
|
|
|
## Optional dependencies
|
|
|
|
Along with the optional dependencies for Manim and ManimGL,
|
|
Manim Slides offers additional *extras*, that can be activated
|
|
using optional dependencies:
|
|
|
|
- `full`, to include `magic`, `manim`, and
|
|
`sphinx-directive` extras (see below);
|
|
- `full-gl`, to include `magic`, `manimgl`, and
|
|
`sphinx-directive` extras (see below);
|
|
- `magic`, to include a Jupyter magic to render
|
|
animations inside notebooks. This automatically installs `manim`,
|
|
and does not work with ManimGL;
|
|
- `manim` and `manimgl`, for installing the corresponding
|
|
dependencies;
|
|
- `pyqt6` to include PyQt6 Qt bindings. Those bindings are available
|
|
on most platforms and Python version, but produce a weird black
|
|
screen between slide with `manim-slides present`,
|
|
see [#QTBUG-118501](https://bugreports.qt.io/browse/QTBUG-118501);
|
|
- `pyqt6-full` to include `full` and `pyqt6`;
|
|
- `pyside6` to include PySide6 Qt bindings. Those bindings are available
|
|
on most platforms and Python version, except on Python 3.12[^2];
|
|
- `pyside6-full` to include `full` and `pyside6`;
|
|
- `sphinx-directive`, to generate presentation inside your Sphinx
|
|
documentation. This automatically installs `manim`,
|
|
and does not work with ManimGL.
|
|
|
|
Installing those extras can be done with the following syntax:
|
|
|
|
```bash
|
|
pipx install -U "manim-slides[extra1,extra2]"
|
|
```
|
|
|
|
[^2]: Actually, PySide6 can be installed on Python 3.12, but you will then
|
|
observe the same visual bug as with PyQt6.
|
|
|
|
## Nixpkgs installation
|
|
|
|
Manim Slides is distributed under Nixpkgs >=24.05.
|
|
If you are using Nix or NixOS, you can find Manim Slides under:
|
|
|
|
- `nixpkgs.manim-slides`, which is meant to be a stand alone application and
|
|
includes pyqt6 (see above);
|
|
- `nixpkgs.python3Packages.manim-slides`, which is meant to be used as a
|
|
module (for notebook magics), and includes IPython but not does not include
|
|
any Qt bindings.
|
|
|
|
You can try out the Manim Slides package with
|
|
|
|
```sh
|
|
nix-shell -p manim ffmpeg manim-slides
|
|
```
|
|
|
|
or by adding it to your
|
|
[configuration file](https://nixos.org/manual/nixos/stable/#sec-package-management).
|
|
|
|
Alternatively, you can try Manim Slides in a Python environment with:
|
|
|
|
```sh
|
|
nix-shell -p manim ffmpeg "python3.withPackages(ps: with ps; [ manim-slides, ...])"
|
|
```
|
|
|
|
or bundle this into [your Nix environment](https://wiki.nixos.org/wiki/Python).
|
|
|
|
:::{note}
|
|
Nix current does not support `manimgl`.
|
|
:::
|
|
|
|
## When you need a Qt backend
|
|
|
|
Before `v5.1`, Manim Slides automatically included PySide6 as
|
|
a Qt backend. As only `manim-slides present` and `manim-slides wizard`
|
|
command need a graphical library, and installing PySide6 on all platforms
|
|
and Python version can be sometimes complicated, Manim Slides chooses
|
|
**not to include** any Qt backend.
|
|
|
|
The use can choose between PySide6 (best) and PyQt6, depending on their
|
|
availability and licensing rules.
|
|
|
|
As of `v5.1`, you **need** to have Qt bindings installed to use
|
|
`manim-slides present` or `manim-slides wizard`. The recommended way to
|
|
install those are via optional dependencies, as explained above.
|
|
|
|
## Install from source
|
|
|
|
An alternative way to install Manim Slides is to clone the git repository,
|
|
and build the package from source. Read the
|
|
[contributing guide](/contributing/workflow)
|
|
to know how to process.
|