linux 配置 manim 过程中的一些问题记录
最近看 3B1B 心血来潮,想着自己整个里面的动画引擎 manim
玩玩,遂开始了配置,一开始想着是在 wsl 里面配置,但是遇到了很多奇怪的问题,总结下来是我的 wsl 里面没有装任何的渲染引擎导致的,然后里面也没装 latex
,所以最后是在 windows 里面再装了一个
另外我是直接下载源码然后 pip install -e .
的,感觉如果直接 pip install manimgl
会简单很多
配置方法
如果要下载源码,完整的配置方法为:
- 下载 FFmpeg
- windows 参考 这里
- linux 直接
sudo apt update && sudo apt install ffmpeg
即可
- 下载 latex
- windows 可以用清华镜像,在里面找到最新的
iso
文件下载即可 - linux 直接
sudo apt update && sudo apt install texlive-full
- 注意
texlive
肥硕的身材
- windows 可以用清华镜像,在里面找到最新的
- 下载源码并安装(建议虚拟环境)
1
2
3git clone https://github.com/3b1b/manim.git
cd manim
pip install -e .
如果只希望使用 manim
工具,将最后一项换成 pip install manimgl
即可
问题记录
python 版本问题
官方推荐的版本是 >=3.7
,README 里面写了如下命令 conda create -n manim python=3.8
,所以我第一次装的时候就按照 python 3.8
来装了,很快遇到第一个问题:
1 | manim_slides/slide/manimlib.py:4: in <module> |
虽然我想出的第一个办法是把 @staticmethod
都注释了(而且还真有用),但是这显然很愚蠢,然后我在 issue 里面翻到了 这个
省流:python < 3.10
的时候是不支持静态方法被调用的,这是 python 本身的 bug
,然后这个代码太 OOP 导致静态方法在某些神奇地方被调用而出错
因此需要用 python >= 3.10
OpenGL 依赖问题
解决了上述版本问题之后其实有很多问题也一并得到了解决,包括 setup.cfg
中的很多包版本问题
之后,运行的时候会在尝试 from OpenGL.GL import * as gl
的时候出现:
1 | Traceback (most recent call last): |
首先我在这个 issue 下面找到了解决方案,即:
1 | cd /usr/lib/x86_64-linux-gnu |
看上去是在帮助系统能够找到 libglut
这个库,但是这个方法对我并没有作用
最后在这个 issue 下面找到了有用的解决方案,本质是没有安装各种图形化引擎:
1 | sudo apt-get install freeglut3-dev |
遂成功运行样例
最终解决
然后样例跑到一半炸了
一看报错:no latex
,然后发现我好像确实没有用 wsl 写过 latex
,但是又不太想在 wsl 里面再装这一坨,于是就在 windows 里面直接重装了,花费了我整整 5 分钟就装好了,并且丝滑运行样例
生气中