常见问题:安装

为什么Manim有不同的版本?

Manim 最初由 Grant Sanderson 创建,作为他个人项目的一部分,并用于他的 YouTube 频道 3Blue1Brown。随着他的频道越来越受欢迎,许多人喜欢上了他的动画风格,并希望将 Manim 用于自己的项目。然而,由于 Manim 最初仅供个人使用,其他用户很难安装和使用它。

在2019年末,Grant 开始在一个名为 shaders 的新分支中开发更快的 OpenGL 渲染功能。2020年中期,一群开发者将其分支出来,形成了现在的社区版;本网站记录的就是这个版本。2021年初,Grant 将 shaders 分支合并回 master 分支,使其成为他仓库中的默认分支——这就是 manimgl。在 shaders 分支合并之前的旧版本有时被称为 ManimCairo,目前它只有一个用途:在您的机器上本地渲染 Grant 的旧视频。它仍以 cairo-backend 分支的形式在他的 GitHub 仓库中可用。

总结

  • Manim,或称 ManimCE,指代社区维护的库版本。本网站记录的就是这个版本;在 PyPI 上的包名为 manim

  • ManimGL 是 Grant “3b1b” Sanderson 开发的库的最新发布版本。它包含更多实验性功能,并且版本之间的重大更改没有文档记录。请在此处查看其文档;在 PyPI 上,包名为 manimgl

  • ManimCairo 是有时用于指代 manimgl 的旧版、预 OpenGL 版本的名称。它的最新版本可在 PyPI 上以 manimlib 的形式获得,但请注意,如果您打算使用它来编译 Grant 的某些旧项目,您可能需要从项目创建时的源代码中安装确切的版本。


我应该使用哪个版本?

我们特别推荐初学者使用社区维护的版本。它被开发得更稳定、经过更好的测试和文档记录(!),并且能更快地响应社区贡献。使用社区维护的版本开始学习,然后稍后切换到不同版本也是完全合理的。

如果您不太关心文档或稳定性,并且希望使用 Grant 正在使用的确切版本,那么请使用 ManimGL。

如上所述,ManimCairo 仅应用于(重新)渲染 3Blue1Brown 的旧项目(基本上是2019年及之前的项目)。


Manim、ManimGL、ManimCairo 之间有什么区别?我能判断某个场景是为哪个版本编写的吗?

可以!通常能分辨出来的是文件顶部的 import 语句;根据代码导入 Manim 的方式,您可以判断它是为哪个版本的代码编写的。

  • 如果代码从 manim 导入(即 from manim import *import manim as mn 等),那么您正在阅读的代码应该使用社区维护的版本运行。

  • 如果导入语句是 import manimlib(或 from manimlib import *),您很可能正在阅读一个将使用 ManimGL 渲染的文件。

  • 如果导入语句是 from manimlib.imports import *,或者甚至是 from big_ol_pile_of_manim_imports import *,那么您正在阅读的片段应该分别使用 ManimCairo 的早期或非常早期的版本进行渲染。


我如何知道我安装的是哪个版本的Manim?

假设您可以在终端中运行 manim 并且有输出,请检查生成文本的第一行。如果您使用的是社区维护的版本,任何输出的第一行将是 Manim Community <版本号>。如果不是这样显示,您可能正在使用 ManimGL。

您还可以检查已安装包的列表:如果在终端中输入 python 能够启动与您所使用的 Python 安装对应的解释器(也可能是 pypython3,具体取决于您的操作系统),那么运行 python -m pip list 将会打印出所有已安装包的列表。检查 manimmanimgl 是否出现在该列表中。

同样,您可以使用 python -m pip install <包名>python -m pip uninstall <包名> 分别安装和卸载列表中的包。


我正在按照视频教程 X 安装 Manim,但某个步骤失败了。我该怎么办?

Manim 是一个用于制作视频的库,因此市面上有很多关于安装 Manim 的视频教程是很自然的。然而不幸的是,当安装过程中的某些步骤发生变化时,(YouTube)视频无法轻松更新(除非上传新视频),因此存在许多严重过时的资源。

这就是为什么我们强烈建议您遵循我们的书面安装指南来指导您完成整个过程。如果您仍然偏爱使用视频教程,请检查您观看的教程创作者是否提供了最新版本,否则请直接联系他们。在社区中寻求帮助很可能会被建议遵循我们的书面指南。


为什么在运行 pip install manim 时 ManimPango 会安装失败?

这很可能意味着 pip 无法使用我们预构建的 manimpango 依赖项的 wheel 文件。请告知我们(通过 Discord 或在 GitHub 上提交新问题)您希望支持哪种架构,我们将尽力解决。

要解决安装 manimpango 时的错误,您需要确保已满足所有必要的构建要求。请查阅 ManimPango 的 README 中的 **BUILDING** 部分提供的详细说明。


我正在使用 Windows,并且收到错误 X is not recognized as an internal or external command, operable program or batch file

如果您已遵循我们的本地安装说明但未激活相应的虚拟环境,请确保使用 uv run manim ... 而不是直接使用 manim(或者按照运行 uv venv 时打印的说明激活虚拟环境)。

否则,可能是您的系统查找可执行文件的目录(PATH 环境变量)存在问题。如果 python 被识别,您可以尝试在命令前加上 python -m。也就是说,manim 变为 python -m manimpip 变为 python -m pip

否则,请参阅此 StackExchange 回答,以获取手动编辑 PATH 环境变量的帮助。


我尝试使用 Chocolatey (choco install manimce) 安装 Manim,但失败了!

请确保您以管理员权限运行了该命令,否则可能会出现问题。如果这不是问题所在,请仔细阅读 Chocolatey 的输出,其中应该会提及一个包含进程失败原因信息的 .log 文件。

欢迎您携带此文件(以及您认为可能相关的任何其他信息)并提交给 Manim 社区以寻求帮助。有关说明,请参阅获取帮助常见问题


在 Windows 上,当我输入 pythonpython3 时会打开 Windows 应用商店,我能解决这个问题吗?

是的:您可以通过以下步骤移除这些别名

  1. 进入 Windows 设置。

  2. 在“应用和功能”下,您会找到“应用执行别名”。

  3. 在此菜单中,禁用导致问题的别名(python 和/或 python3)。


我正在使用 Anaconda,并收到一个 ImportError,提示找不到某些符号。

这是因为 Anaconda 环境自带的 cairo 版本与 Manim 所需的 pycairo 版本不兼容。通常可以通过运行以下命令来解决:

conda install -c conda-forge pycairo

尝试安装 Manim 时,如果出现 manimpango/cmanimpango.c 找不到的错误,我该如何解决?

当您的系统需要本地构建 ManimPango 的 wheel 文件,因为 PyPI 上没有与您的架构兼容的版本时,偶尔会发生这种情况。

通常情况下,通过安装 Cython(例如,通过 pip3 install Cython),然后尝试重新安装 Manim,问题就能得到解决。如果这不能解决问题,请按照以下步骤操作: