栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

2022最新版Manim安装教程

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2022最新版Manim安装教程

Manim相关环境:

Windows               11

Texlive                   2021

Manim                    ManimCE

python                    3.8

Anaconda 3           2022

powershell             5.1.22000.653

ffmpeg                   4.2.3

scoop                    v0.2.2

Git                          2.36.1.windows.1

前言

始于颜值,陷于才华!

这就是我对Manim的感受!

在高中的时候我就接触到了Grant Sanderson的视频,当时很好奇他是怎么制作线性代数的本质那一系列视频的。然后上了大一由误打误撞学习了LaTeX,而且还学习了Python。某一天突然了解到了他的视频使用是Manim,而且Manim恰好是使用Python来写的,本来我就是一名数学系的菜狗,对数学有那么的兴趣,特别喜欢数学的可视化。学习了python和LaTeX后对Manim更加的感兴趣了。我原本还想学习Processing的,现在一下就想学习Manim了。

一.安装历程

Manim的安装可谓是把我这个小白给折磨死了,我在期末开始前,打算安装,安装了两三天,结果还失败了。期末考试结束后,我想我有大把的时间来征服它了,但是我还是轻敌了,又安装了两天!但是终于,Manim我安装好了,主要还是得益于无数的开源工作者的贡献,他们大大的简化了Manim的安装教程,在此向他们致敬!!!你们肯定会好奇去去一个Manim需要安装这么久吗?我也是这么认为的,我还是又安装各种软件的经历的,但是2019版及其以前的Manim是真的难装。

我踩过的坑:

1.环境变量没添加,cmd窗口无法识别

2.相关的软件找不到,或者是找到了无法下载,说什么端口错误,github拒绝连接

3.python创建的Manim环境混乱,然后就只有Remake(哭死)

4.Manim的版本太多

有ManimGL(3b1b本人维护),ManimCE(最稳定的版本),ManimCairo(好像没有维护了)

把这个版本的安装方法使用到别的版本上

5.网上的教程太过陈旧,繁杂

你随便一搜索Manim安装都有一大堆的教程,但是我一个也没有成功,下边的评论区也是一片惨叫,安装成功的人屈指可数。

6.Manim维护过于频繁,导致网上的部分教程失效

7.LaTeX的安装天坑

这个点但凡是安装过LaTeX的人都应该知道吧(doge)

8.Git出现bug

9.包管理器Scoop配置失败

……

还有很多的坑,我真的不知道我怎么坚持过来的!!

二.具体的安装教程

这个坑我先踩为敬,为你们节约时间,给你们一个愉快的安装过程。

1.创建对应的python虚拟环境

github的官网要求是3.7及其以上,尽量不要装太高的(你懂的)

Anaconda 下载,推荐小破站的教程,接下来就是conda进行虚拟环境的创建,以免和你之前的python环境冲突,参见我的上一篇conda常用操作。

2.安装第三方软件

我们需要安装ffmpeg,sox,以及LaTeX

(官方的教程是只安装ffmpeg,但是应为我之前安装了几次,这些软件都在,所以我觉得还是安装上比较好)

为了方便安装,我采用的是scoop包管理器进行的安装,应为这样软件源丰富,方便Remake(doge),同时不用担心什么注册表之类的问题。scoop的安装与使用可以见我的文章scoop学习笔记

第一步

安装LaTeX

有两种方案;Texlive或者是MikTeX

这个还是“比较”简单的。

MikTeX可以使用scoop进行安装,尽量把第三方的库全部下载,这一点可以参见小破站一视数学

的互动视频。

使用Latex -v查看LaTeX是否安装成功,不报红就成功了

第二步

安装python和ffmpeg

scoop install python ffmpeg

这一步,你们可能会在下载dark库的时候卡住。

报错:不能打开raw.github……,服务器不响应,用浏览器复制链接使用第三方下载工具也是服务器不响应。

问题的解决可以参见这篇文章:修改host文件

使用python查看LaTeX是否安装成功,不报红就成功了

使用ffmpeg -v查看LaTeX是否安装成功,不报红就成功了

第三步

在你刚才创建的虚拟环境下安装manim库,尽量使用pip安装

python -m pip install manim

我的操作示例

 三.检验Manim是否安装成功

1.创建一个名为example.py 的文件,把以下内容复制进去

from manim import *


class SquareToCircle(Scene):
    def construct(self):
        circle = Circle()
        square = Square()
        square.flip(RIGHT)
        square.rotate(-3 * TAU / 8)
        circle.set_fill(PINK, opacity=0.5)

        self.play(Create(square))
        self.play(Transform(square, circle))
        self.play(FadeOut(square))

2.在刚才创建的example.py所在的文件夹里边右键运行【在终端打开】

 3.使用

conda activate Github_manim

# 我创建的Manim环境名为“Github_manim”

进入你创建的虚拟环境里边

然后运行命令

manim -p -ql example.py SquareToCircle

如果出现如下的视频即代表安装成功

 4.另外一个测试源码

from manim import *

class OpeningManim(Scene):
    def construct(self):
        title = Tex(r"This is some LaTeX")
        basel = MathTex(r"sum_{n=1}^infty frac{1}{n^2} = frac{pi^2}{6}")
        VGroup(title, basel).arrange(DOWN)
        self.play(
            Write(title),
            FadeIn(basel, shift=UP),
        )
        self.wait()

        transform_title = Tex("That was a transform")
        transform_title.to_corner(UP + LEFT)
        self.play(
            Transform(title, transform_title),
            LaggedStart(*[FadeOut(obj, shift=DOWN) for obj in basel]),
        )
        self.wait()

        grid = NumberPlane(x_range=(-10, 10, 1), y_range=(-6.0, 6.0, 1))
        grid_title = Tex("This is a grid")
        grid_title.scale(1.5)
        grid_title.move_to(transform_title)

        self.add(grid, grid_title)
        self.play(
            FadeOut(title),
            FadeIn(grid_title, shift=DOWN),
            Create(grid, run_time=3, lag_ratio=0.1),
        )
        self.wait()

        grid_transform_title = Tex(
            r"That was a non-linear function \ applied to the grid"
        )
        grid_transform_title.move_to(grid_title, UL)
        grid.prepare_for_nonlinear_transform()
        self.play(
            grid.animate.apply_function(
                lambda p: p + np.array([np.sin(p[1]), np.sin(p[0]), 0])
            ),
            run_time=3,
        )
        self.wait()
        self.play(Transform(grid_title, grid_transform_title))
        self.wait()

在cmd窗口的运行方式和上边差不多

manim -p -qh example.py OpeningManim

# -qh代表qulity high 1080p
# -p代表preview,即预览

运行效果【时长:15s】

视频会自动导出到和.py文件同目录的media文件夹下

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/991193.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号