Troubleshooting#

Version incompatibility#

Confusion and conflict between versions are by far the most common reasons for installation failures. Some errors resulting from this are:

  • There are no scenes in that module

  • ModuleNotFoundError: No module named 'manim'

  • ModuleNotFoundError: No module named 'manimlib'

Some reasons that conflict may occur are:

  • You followed any tutorial created before October 2020 (because the community edition did not exist before then)

  • You cloned a repository on GitHub (installation of the community version for normal use does not require the cloning of any repository)

  • Different import statements (explained below)

  • You used documentation for multiple versions (such as the readme for 3b1b/manim and this documentation)

Note

As this is the documentation for the community version, we can only help with the installation of this library. If you would like to install other versions of manim, please refer to their documentation.

Identifying files written for a different version of manim#

There are some distinctive features of different versions of manim that can help in identifying what version of manim files are written for:

Feature

ManimCE (this version)

ManimGL

ManimCairo

Import statement

from manim import *

from manimlib import *

from manimlib.imports import *

If you are a beginner, you should only attempt to run files written for your version. Files written for a different version of manim will generally not work without some modification.

Identifying the version you are running#

The community edition of manim should always state Manim Community <version_number> as its first line of any command you run.

Identifying and removing conflicting versions of manim#

Within the system or environment you are using to run manim, run the following command in the terminal:

pip list

The correct package for the community edition is simply manim. If you do not see this package listed, please refer back to our installation guide to install it. If you see manimlib or manimce (actually an old version of the community edition), you should remove them with:

pip uninstall <package>

If you cloned manim from GitHub, you should either remove it or run manim outside that folder.

Other errors#

pip install manim fails when installing manimpango?#

This most likely means that pip was not able to use our pre-built wheels of manimpango. Let us know (via our Discord or by opening a new issue on GitHub) which architecture you would like to see supported, and we’ll see what we can do about it.

To fix errors when installing manimpango, you need to make sure you have all the necessary build requirements. Check out the detailed instructions given in the BUILDING section of the corresponding GitHub repository.

(Windows) OSError: dlopen() failed to load a library: pango#

This should be fixed in Manim’s latest version, update using pip install --upgrade manim.

Some letters are missing from Text/Tex output#

If you have recently installed TeX you may need to build the fonts it uses. This can be done by running:

fmtutil -sys --all

Installation does not support converting PDF to SVG#

First, make sure your dvisvgm version is at least 2.4:

dvisvgm --version

If you do not know how to update dvisvgm, please refer to your operating system’s documentation.

Second, check whether your dvisvgm supports PostScript specials. This is needed to convert from PDF to SVG.

dvisvgm -l

If the output to this command does not contain ps  dvips PostScript specials, this is a bad sign. In this case, run

dvisvgm -h

If the output does not contain --libgs=filename, this means your dvisvgm does not currently support PostScript. You must get another binary.

If, however, --libgs=filename appears in the help, that means that your dvisvgm needs the Ghostscript library to support PostScript. Search for libgs.so (on Linux, probably in /usr/local/lib or /usr/lib) or gsdll32.dll (on 32-bit Windows, probably in C:\windows\system32) or gsdll64.dll (on 64-bit Windows, probably in c:\windows\system32 – yes 32) or libgsl.dylib (on Mac OS, probably in /usr/local/lib or /opt/local/lib). Please look carefully, as the file might be located elsewhere, e.g. in the directory where Ghostscript is installed.

When you have found the library, try (on Mac OS or Linux)

export LIBGS=<path to your library including the file name>
dvisvgm -l

or (on Windows)

set LIBGS=<path to your library including the file name>
dvisvgm -l

You should now see ps    dvips PostScript specials in the output. Refer to your operating system’s documentation to find out how you can set or export the environment variable LIBGS automatically whenever you open a shell.

As a last check, you can run

dvisvgm -V1

(while still having LIBGS set to the correct path, of course.) If dvisvgm can find your Ghostscript installation, it will be shown in the output together with the version number.

If you do not have the necessary library on your system, please refer to your operating system’s documentation to find out where you can get it and how you have to install it.

If you are unable to solve your problem, check out the dvisvgm FAQ.

(Windows) Python is not recognized as an internal or external command, operable program or batch file.#

To fix this, you need to add the Python executable to your PATH environment variable. Follow the steps in this StackExchange answer.

choco install manimce failed#

If choco install manimce failed, it is likely because Python was not added to your PATH variable properly. Try running the following commands in your terminal:

  1. py --version

  2. python --version

  3. py3 --version

  4. python3 --version

Minimally, py --version and python --version should return a version. If none of these commands are recognized, this means that Python was installed on your system, but was not added to PATH. See above for directions to add it to your PATH variable.

If any of these commands open the Windows store, this is likely interfering with the process. See below to fix aliases.

(Windows) Fix Aliases#

  1. Go to the Windows Settings.

  2. Under Apps and Features, there are application execution aliases.

  3. Within this menu disable the alias(es) that are causing the issue (python and/or python3).

IndexError: List index out of range#

Did you install LaTeX using MiKTeX? If so, open the MiKTeX console, install the cm-super package, then delete the media directory and try to render the scene again.

Config#

We’ve dropped the use of CONFIG in the Community Version version 0.2.0, released in January 2021. This means parameters that were previously specified in the CONFIG dictionary should now be passed directly into the constructor. Practically, this means that old constructions like:

class SomeMobject(Thing):
    CONFIG = {
        "stroke_color": RED,
        "fill_opacity": 0.7,
        "radius": 3,
        "my_awesome_property": 42,
    }
    # add methods here

should now be defined like:

class SomeMobject(VMobject):
    def __init__(
        self,
        stroke_color=RED,
        fill_opacity=0.7,
        radius=3,
        my_awesome_property=42,
        **kwargs
    ):
        self.radius = 3
        self.my_awesome_property = 42
        super().__init__(
            stroke_color=stroke_color, fill_opacity=fill_opacity, **kwargs
        )  # passing arguments into the parent class
        # add methods here

For scenes, this is even easier:

class Test(Scene):
    CONFIG = {"a": 1, "b": 2}

becomes:

class Test(Scene):
    def construct(self):
        self.a = 1
        self.b = 2

A python command does not work#

If a python command does not work, try adding python -m in front of it. For example, if pip install manim does not work, you can try python -m pip install manim.

undefined symbol#

If you are using anaconda, run the following command:

conda install -c conda-forge pycairo