macOS 安装解释性数学视频的动画引擎 Manim

Manim

这篇文章的目的是给出另一个关于如何让 Manim 使用 Python 3.7Mac 上 工作的帐户,仅此而已。我花了几个令人沮丧的夜晚试图让事情发挥作用,我想把我的经验添加到 Manim 不断增长的资源中。我强烈建议将此帖与 Todd Zimmerman 的博客 结合使用,学习如何使用 Grant Sanderson 的代码。

我提前道歉包含了许多更简单的步骤,但这篇文章旨在 让没有编程背景的人可以访问 Manim。 我认为一旦将 Manim 安装到您的计算机上,Manim 相对容易学习,所以我希望那些没有太多编程背景的人不会因为让这个库工作而感到沮丧而且可以专注于做出很棒的内容。

如果按顺序进行,这个过程应该相对简单。一般过程将涉及:

  1. 下载并安装 Homebrew 包管理器和 Python 3.7
  2. 在整个系统中安装必要的软件包
  3. 下载并安装 MacTex
  4. 克隆 Manim 库并创建虚拟环境
  5. 修改代码
  6. 运行测试

第 1 步:下载并安装 Hombrew 和 Python3

首先需要的是程序包管理器 Homebrew,它将帮助我们安装一些 pip 无法正确安装的软件包。您可以通过打开终端并运行以下代码行来安装 Homebrew:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

安装 Homebrew 后,可以通过运行安装 Python:

brew install python3

如果在此过程中出现任何问题,我建议您转到此视频:

https://youtu.be/XqADAxr7LzI

一旦安装了 python,我们需要获得一些软件包。返回终端并运行以下代码行,以获取安装所需的软件包(cairo,pkg-config,virtualenv)。

brew install cairo
brew install pkg-config
pip3 install virtualenv

virtualenv 是获得 Manim 库之前唯一绝对需要的软件包,但是我个人在安装或推出将上述项目安装到虚拟环境中时遇到了麻烦(稍后会介绍)。这就是为什么我建议在继续本教程之前将它们直接安装到您的系统上。

下一步需要花费大量的试验和错误来解决,特别是因为 3b1b 的 GitHub 上没有文档。Manim 使用不同的 LaTeX 子包,因此 pip3 install latex 可能无法获得所需的所有必需子包。我认为主要的问题是许多人已经在他们的计算机上使用了不同形式的 LaTeX,所以当你认为你已经掌握了所有东西时,很难确保一切都在那里。经过多次安装和卸载后,我发现 MacTex 的完整安装可以解决问题,可以在这里找到:

http://www.tug.org/mactex/mactex-download.html

确保你安装了所有东西 - 我尝试了几次快捷方式,并没有结束工作。

现在已经安装了 LaTeX,您可以继续开始获取 Manim 库。通常,在虚拟环境中运行项目是一种很好的做法,这样您就可以轻松控制所有文件和其他软件包的安装位置。以下是我推荐的步骤:

第 2 步:为动画创建文件夹

创建您希望存储 Manim 库的文件夹。我在我的主目录中创建了一个名为 animation 的文件夹:

第 3 步:导航终端

前往 Manim GitHub 并获取要克隆的 URL。复制后,前往终端并导航到刚刚创建的文件夹。导航到终端内的特定文件夹非常简单。您可以通过键入以下内容找到当前目录(当前文件路径):

pwd

您可以通过键入以下内容找到当前目录中的文件夹:

ls

并且您可以通过运行以下命令更改目录以输入其中一个文件夹:

cd folder/subfolder/subsubfolder

第 4 步:克隆 Manim 存储库

现在在 Terminal 中运行以下命令将 Manim 存储库克隆到您的文件夹中:

git clone https://github.com/3b1b/manim.git

您的文件夹现在看起来应该是这样的(我将文件夹重命名为 manim37):

第 5 步:设置虚拟环境

现在我们需要建立一个虚拟环境。基本上这将是在 Manim 文件夹中重新安装单独版本的 Python3。在虚拟环境中运行时,您将能够运行 Python 并将软件包安装到该特定文件夹而不是整个系统。这些通常用于确保可以逐个项目地维护特定版本的包。

要创建虚拟环境,请转到终端并导航到 Manim 文件夹。现在继续并将以下命令运行到终端:

virtualenv venv

virtualenv 指的是我们之前安装的软件包。venv 是您将安装虚拟环境的文件夹的名称。

现在,如果您查看 Manim37 文件夹,应该有一个名为 venv 的文件夹。如果没有,并且 venv 文件夹在其他地方结束,您只需单击并将其拖动到 Manim37 文件夹即可。

第 6 步:激活虚拟环境

现在您已经设置了虚拟环境,现在需要从终端输入。确保您当前的工作目录是 Manim37,然后运行:

source venv/bin/activate

您的终端线将更改,并且 (venv) 将出现在提示的开头:

使用 Manim 所做的一切都需要在这个虚拟环境中完成,这意味着安装其他软件包,运行动画代码等。如果重新打开终端,则必须再次激活虚拟环境文件夹。您可以通过执行 deactivate 随时退出虚拟环境。

第 7 步:pip3 安装包

现在我们需要获得更多的软件包:soxffmepglatex,pycairo 等。继续运行以下各项:

pip3 install sox
pip3 install ffmpeg
pip3 install latex
pip3 install pycairo
pip3 install -r requirements.txt

最后一行代码将运行所需的更多软件包的安装。你可以看看的 requirements.txt 的 Manim37 文件夹内的文件,看看到底需要什么,但是一旦这个过程完成后,你将不需要任何更多的包。

第 8 步:修改代码

现在已经下载了所有软件包,我们可以开始修复一些与您的计算机相匹配的代码。首先需要做的是在 Manim37 目录中添加一个名为 “output” 的文件夹。

然后我们需要更改位于 Manim37 文件夹中的文件 constants.py 中的一行代码。

打开后,转到第 23 行,找到 “Dropbox(3Blue1Brown)/ 3Blue1Brown Team Folder” 的行

我们需要更改此行以匹配刚刚创建的 输出 文件夹。在我的例子中,我用 “animation/manim37/output” 替换了那一行。您应该用您的文件路径替换它(请记住,上面一行中的 是主目录的文件路径的缩写)。

第 9 步:测试

现在我们需要运行一个快速测试来查看某些动画是否正常工作。仍在虚拟环境中,运行:

python3 extract_scene.py example_scenes.py SquareToCircle -pl

这应该会启动 QuickTime 来运行您的示例视频。如果您此时遇到问题,我建议您搜索 Manim GitHub 的 问题 部分。

第 10 步:LaTeX

所有形状和动画都应该在这一点上起作用。但是,要使单词起作用,我们需要对几个文件进行一些修改。这些变化对我有用。

打开 utils/tex_file_writing.py 并向下滚动到最后两个函数,然后更改它们,使它们看起来像这样(对于截图感到抱歉 - 目前在保持格式化的同时发布代码时出现问题):

需要修改的最后一个文件是 tex_template.tex。继续前进,让你看起来像:

第 11 步:最终测试

既然已经进行了这些更改,请继续尝试运行:

python3 extract_scene.py example_scenes.py WriteStuff -pl

希望所有人都为你工作!

如果有问题,我建议在 3b1b 的 GitHub 上发布一个问题。那里有更多知识渊博的人,并且通过综合帮助你解决问题的机会更大。

原文:MANIM FOR MAC

作者:Brian M. Howell

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,937评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,503评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,712评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,668评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,677评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,601评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,975评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,637评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,881评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,621评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,710评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,387评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,971评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,947评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,189评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,805评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,449评论 2 342