当前位置: 首页 > 工具软件 > Manim > 使用案例 >

manim的安装

华振
2023-12-01

博客内容说明

我的博客主站是基于notion的,这是我的notion主页。因为notion的markdown格式和csdn不兼容,所以别的文章内容可能会缺图和排版错误,请谅解。
所有文章我都会贴上notion的原链接,加载可能会慢些。但notion确实是一个好用的写作+效率工具,而且界面排版方便美观,推荐大家使用。
这篇原文的链接在manim的安装中,有更好的排版和图片,后续更新也会在里面,推荐前往浏览。

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

然后是其他的依赖安装

  • soxffmpeg应该没有问题,直接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

尝试跑一下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不行)。
 类似资料: