动画库manim[3b1b]的安装与配置

本文假设你在Windows环境下工作,并且已经有一定的计算机(编程)基础,如果连基础都没有那还是趁早退出吧。

本文使用的manim库版本的github地址为https://github.com/3b1b/manim/commit/c69a21af320fea29cbcf5b7f20bbc179cc726521

 @Solara570 曾在2017年9月22日写过一篇关于manim安装和配置的专栏:

https://www.bilibili.com/read/cv17444

由于时间过去太久,这篇专栏提到的很多内容已经过时了,前几天我安装manim遇到了不少麻烦,经过几天的艰苦奋斗总算是解决了,所以这里分享一下安装的过程和一些要注意的东西。

附上manim项目地址:https://github.com/3b1b/manim/

开始吧!


一、准备工作

以上是所需要下载的东西,下载完成整理好备用。

二、manim源码

  1. 下载:

    建议用git直接clone下来,不会的童鞋可以参考 @Solara570 专栏中提到的方法下载,然后解压出来。

  2. 修改部分代码

    首先打开extra_scene.py,在160行附近可以找到一行代码:

    sp.call(commands, stdout=FNULL, stderr=sp.STDOUT)

    将其修改为:

    sp.call(commands, stdout=FNULL, stderr=sp.STDOUT, shell=True)

    打开constants.py,修改变量MEDIA_DIR的值为一个目录的路径,这个目录将用于输出动画的视频等文件。

    打开requirements.txt,记住scipy和numpy的版本号,然后移除这两行,保存退出。

三、关于Python

所需的Python版本为2.7.x,不支持3.x。

可以在网上找到很多安装Python的教程,这里要重点提出的是,装完Python还要装

Visual C++ Compiler for Python 2.7

下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=44266

紧接着手动下载scipy和numpy的whl包要注意版本得和requirements.txt中原来的相同

再使用pip安装即可。

做完这些,再执行pip install -r requirements.txt,pip会自动安装其他所需的库。

需要注意的是manim使用的aggdraw是老版本的,如果要手动安装还需要编译,很麻烦,所以最好用pip直接安装。

不要自作聪明用pip install aggdraw,这会安装新版本的aggdraw,manim使用新版本的aggdraw输出视频会是一片黑屏。


四、FFMpeg和dvisvgm

这两个东西随便找个英文路径放好,然后再配置好环境变量即可,可参考 @Solara570 专栏。


五、MiKTex

 @Solara570 建议安装完整版的CTex,而那1.3GB的大小实在令人望而生畏(我明明只是想做一些小动画啊!)

MikTex Basic版只有200MB,在我的测试下应该是能满足需求的,反正只是用来制作文字之类的而已。

安装的时候注意选择:当需要时自动下载package,如果后面缺少什么package都会自动安装,就算安装失败了,也可以打开包管理器手动安装。

安装完成后,以管理员身份运行控制台,切换到MikTex的目录,执行指令:mpm --register-components --verbose


六、检查

在控制台依次输入以下指令:

七、示例动画

控制台切换到manim的目录,执行指令:

python extract_scene.py example_scenes.py SquareToCircle -pm

稍等片刻就会弹出一个窗口,播放一段持续两秒的动画,内容是一个方形变换为圆形,旋即消失,在输出目录可以找到生成的mp4文件。

参数-pm:p表示预览,m表示中等质量。l和s分别表示低和高等质量,高等质量的生成速度很慢,一般预览用低、中等就好了。


八、常见的问题

  1. 每次生成动画控制台都会输出一句"系统找不到指定的路径。"

    这是正常的情况,无需在意,这只是播放提示音时找不到play程序而已。

  2. 输出的视频是一片黑屏,没有任何内容。

    这是因为你在安装依赖的包时,安装了新版的aggdraw,早就说了不要自作聪明手动安装,老老实实用pip install -r requirements.txt吧。

  3. 生成包含文字的动画时,提示"dvisvgm MiKTeX session could not be initialized"。

    请认真阅读上文MikTex部分。

  4. 生成包含文字的动画时,提示"Unfortunately, the package xxx could not be installed.Please check the log file"。

    这是MikTex缺少某个包了,在生成的时候自动安装失败,这时你需要手动安装,提示中的xxx即缺少的包,例如xcolor。

-- --
  • 投诉或建议
评论