Manim的安装
February 22, 2020About 2 min
Manim的安装
manim是3B1B用来做演示视频的python库,涉及到代码控坐标系、图形、文字等。同时有一些进阶的内容,用于控制视频、音乐等。实例可见这个视频。
manim安装的踩坑
按道理说,跟着网上的教程来一步一步走是不会出问题的。但是我电脑内存快不够了,同时又想把manim装在WSL里,于是踩下了好多的坑。这里总结一下:
首先是python相关的安装
- 用conda创建环境是可以的,这样可以一个系统多个版本。我用miniconda新建了环境,python版本3.7。这个环境中安装python依赖库还是推荐
pip
git下来的requirements.txt
,虽然conda里面用pip废一点点空间,但是真的方便很多,不用走弯路。 - 总体来说就是conda建完环境之后跟着manim的
readme.md
来就行了。嫌速度慢可以换成清华源
conda create -n manim python=3.7 #-n 表示环境的名称
conda activate manim
cd "the path of your project"
git clone https://github.com/3b1b/manim.git
cd manim
pip3 install manimlib
python3 -m pip install -r requirements.txt
然后是其他的依赖安装
sox
和ffmpeg
应该没有问题,直接apt就行。cairo也是apt,命令上官网搜。但是tex出了问题。因为有两个win和wsl两个相对独立的环境,两边都装texlive硬盘容量吃不消,于是想压榨空间。但是很不巧,失败了。- 一开始为了省空间在wsl安装了
miktex
,花了一点时间,但是相关的tex编辑器是可以用的(vscode的远程tex)。所以我就以为装好了。但是结果运行manim的时候出错了,报错信息如下。具体原因在svg_modules中,似乎是svg文件生成出错了。试了很多方法之后,发现问题出在miktex缺少一些tex组件。把miktex卸载了,重新装texlive-full
就行了。 - 嫌速度慢可以换成阿里源
sudo apt install sox ffmpeg texlive-full libcairo2-dev
- 一开始为了省空间在wsl安装了
尝试跑一下example
python3 ./manim.py example_scenes.py OpeningManimExample-pl
python3 ./manim.py example_scenes.py SquareToCircle -pl
python3 ./manim.py example_scenes.py WarpSquare -pl
python3 ./manim.py example_scenes.py WriteStuff -pl
python3 ./manim.py example_scenes.py UpdatersExample -pl
最后是一些出现的问题的记录
- 运行了example,发现SquareToCircle这样不涉及文字的可以正常运行,但是有文字组件的(TexMobjct)编译不能通过。会报错
UserWarning: g0-84 not recognized
,并回溯到break_up_by_substrings
函数出现list index out of range。原因是生成的svg的元素没有正确读入svgMobject中,导致尝试索引一个空list。- 解决方法是:卸载了miktex,安装texlive-full(texlive不行)。