manimgl安装

发布于:2025-02-10 ⋅ 阅读:(40) ⋅ 点赞:(0)

一、环境

笔记本

$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 22.04.5 LTS
Release:	22.04
Codename:	jammy

二、安装miniconda3

manimgl基于python开发,为了防止将笔记本中已有的python环境破坏,因此安装python虚拟环境。miniconda3是conda的一个最小版,已经满足要求,不再安装更复杂功能更强大的conda。

参考 https://docs.anaconda.com/miniconda/install/

$ mkdir -p ~/miniconda3
$ wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
$ bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
$ rm ~/miniconda3/miniconda.sh

三、安装依赖

参考 https://docs.manim.org.cn/getting_started/installation.html

$ sudo apt install ffmpeg
$ sudo apt install libpango1.0-dev
$ sudo apt install texlive-full

note: 安装texlive-full时将出现卡住的现象,等了几小时都没有结束,网上查询说直接多次回车即可解决(验证有效),不知有什么影响,但是后续的操作都正常。

四、创建虚拟环境并安装maimgl

参考 https://docs.manim.org.cn/getting_started/installation.html

$ source ~/miniconda3/bin/activate
(base)$ conda create --name manimgl python=3.8
(base) $ conda activate manimgl
(manimgl) $ pip install manimgl

五、运行以及问题解决

(manimgl) $ manimgl --conofig
(manimgl) $ manimgl

参考 https://www.bilibili.com/opus/702394618087473169?spm_id_from=333.1387.0.0

问题1:/usr/lib/dri/radeonsi_dri.so: cannot open shared object file

libEGL warning: MESA-LOADER: failed to open radeonsi: /usr/lib/dri/radeonsi_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri, suffix _dri)

libEGL warning: MESA-LOADER: failed to open swrast: /usr/lib/dri/swrast_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri, suffix _dri)

/home/tree/miniconda3/envs/manimgl/lib/python3.8/site-packages/glfw/__init__.py:912: GLFWError: (65542) b'EGL: Failed to initialize EGL: EGL is not or could not be initialized'
  warnings.warn(message, GLFWError)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
...

实际上笔记本上有这些库,看报错输出是有/usr/lib/x86_64-linux-gnu/dri,但是为什么没找到,或许是miniconda3的虚拟环境导致的。这里就创建一个软连接来解决。

解决:

 sudo ln -s /usr/lib/x86_64-linux-gnu/dri /usr/lib/dri

问题2: version `GLIBCXX_3.4.30’ not found

libEGL warning: MESA-LOADER: failed to open radeonsi: /home/tree/miniconda3/envs/manimgl/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /lib/x86_64-linux-gnu/libLLVM-15.so.1) (search paths /usr/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri, suffix _dri)

libEGL warning: MESA-LOADER: failed to open swrast: /home/tree/miniconda3/envs/manimgl/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /lib/x86_64-linux-gnu/libLLVM-15.so.1) (search paths /usr/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri, suffix _dri)

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  ...
$ strings ~/miniconda3/envs/manimgl/lib/libstdc++.so.6 | grep -oE 'GLIBCXX_[0-9.]+' | sort | uniq -c
...

从输出中确实没有GLIBCXX_3.4.30,所以问题是miniconda3构建的这个虚拟环境中的glibcxx版本比我笔记本中的glibcxx版本低,导致无法使用我笔记本中的一些使用了高版本函数的库

解决:
参考 https://libraries.io/conda/libstdcxx-ng

(manimgl) $  conda install -c conda-forge libstdcxx-ng=14.1.0

其中因安装总是失败,因此找了一些国内源,修改了miniconda3的源

$ cat ~/.condarc 
channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
auto_activate_base: false
show_channel_urls: true
custom_channels:
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

正常进入终端模式
在这里插入图片描述

六、源码运行example

(manimgl) $ git clone https://github.com/3b1b/manim.git
(manimgl) $ cd manim
(manimgl) $ manimgl example_scenes.py OpeningManimExample

在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到