常见问题解答:安装

为什么有不同版本的Manim?

Manim最初是由Grant Sanderson创建的一个个人项目,并用于他的YouTube频道3Blue1Brown。随着他的频道越来越受欢迎,许多人开始喜欢他的动画风格,并希望在自己的项目中使用manim。然而,由于manim最初仅用于个人用途,其他用户安装和使用它非常困难。

2019年末,Grant开始在一个新分支上致力于更快的OpenGL渲染,这个分支被称为shaders分支。2020年中,一组开发者将其分叉为现在的社区版;这是本网站上记录的版本。2021年初,Grant将shaders分支合并回主分支,使其成为他仓库中的默认分支——这就是manimgl。在合并shaders分支之前的旧版本有时被称为ManimCairo,此时它只有一个单一用途:在你的机器上本地渲染Grant的旧视频。它仍然以cairo-backend分支的形式存在于他的GitHub仓库中。

总结:

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

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

  • ManimCairo 是旧版、OpenGL 之前的 manimgl 版本有时使用的名称。它的最新版本可以在 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安装相对应(也可能是py,或python3,取决于你的操作系统),运行python -m pip list将打印所有已安装包的列表。检查manimmanimgl是否出现在该列表中。

同样地,你可以使用python -m pip install name>python -m pip uninstall name>来分别安装和卸载 该列表中的包。


我正在按照视频指南X来安装Manim,但某些步骤失败了。我该怎么办?

鉴于Manim是一个用于创建视频的库,自然有很多关于安装Manim的视频指南。然而,不幸的是,当安装过程中的某些步骤发生变化时,(YouTube)视频无法轻松更新(即不上传新视频),因此有很多严重过时的资源。

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


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

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

要修复安装manimpango时的错误,您需要确保拥有所有必要的构建要求。请查看ManimPango的READMEBUILDING部分提供的详细说明。


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

无论X说的是python还是manim,这意味着你试图运行的可执行文件不在系统查找的目录中(由PATH变量指定)。请查看Windows安装指南中的说明,或这个StackExchange答案以获取手动编辑PATH变量的帮助。

如果识别出python但没有识别出manimpip,你可以尝试在命令前加上python -m来运行。也就是说,manim变成python -m manimpip变成python -m pip


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

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

欢迎您使用此文件(以及您认为可能相关的任何其他输入),并将其提交给Manim社区以寻求帮助。请参阅获取帮助的FAQ以获取说明。


在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来解决。如果这没有解决问题: